数据库设计中的一些小经验,拿来分享一下(有血的教训)。

  在以往的数据库设计中遇到一些问题,由于当时缺乏经验造成了一些影响,所以在今后的工作中要加强这些地方的考虑。

 

1.对价格,温度等有可能变化的数据,在引用的地方只保存了相应的ID,而没有保存具体内容。比如:产品表里面有:名称、价格、类型等字段。订单表里面只存了产品ID,这样当产品价格变化时,再统计时价格就和当初订货价格不一样了。所以在订单表里面需要保存订货时的价格。

 

2.通过多级关系来获取相应记录。比如:文件表里面有创建人ID对应人员表,人员表里面有部门表ID。这样当过滤部门条件时,直接可以找到部门信息。但是这没有考虑到人员调整部门的情况,如果人员部门变化了,就会造成该人员创建的文件记录都跑到新的部门名下了。所以文件表还必须保存一个部门表的ID。

 

3.一些当时认为不会变化的数据几年后发生了变化。最明显的就是省市区名称变化。刚开始工作时,一个项目中对区县记录没做基础表,而且数据库里面直接存的就是区县的名称,当时考虑不会变化的,但是过了几年区县规划了,这时就造成就很大的问题,解决这个问题花费了大量人力和时间。此后再做项目时就把所有基础项都建立了相应基础表,使用的地方也都引用外键来处理。

 

4.对应图片、文件之类的保存在数据库表里面,还是保存的项目的相应文件夹里面,对这个问题一直没有完善的解决办法。存数据库表的一个字段里面,这样好处是备份方便,只有把数据库备份了所有数据都丢不了,缺点是数据库会越来越大,有的项目几个后数据库都有10G以上了。 保存在项目文件夹里面正好相反。

 

5.一些表建立的是联合主键,这种造成一些操作很麻烦,而且效率也不高。所有以后在建表时都建立唯一自增主键,这样维护起来很方便,对于主从表操作也简便。

 

 

  以上都是在SQLServer数据库上的经验,其他数据库没试过。

 

转载于:https://www.cnblogs.com/hanjin/archive/2011/12/14/2287158.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值