数据库表结构设计原则

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangsweet1991/article/details/80840153

先谈谈我这些年趟过的数据库的坑:

  1. 同义多词。例如:在订单表中申请单号用appseetserialno,而在支付日志表中用appno。
  2. 同词多义。例如:渠道这个字段,可以用channel表示,在委托表中表示请求的来源渠道,eg:安卓、IOS、官网;在支付日志表中表示支付的渠道,eg:连连支付、银联支付、易宝支付。
  3. 主键全部用uuid或者mysql中全部用id自增主键。例如:渠道表appinfo中有个appid渠道编号字段,明明可以用appid做主键我也想不通这些人为啥一定要用id做主键,这样做主键的意义就不大了。
  4. 表名一律以tb_开头,如果所有的表都有固定前缀,这样做也没有什么意义。

数据库字段在命名的时候要尽量避免歧义,对于数据库的设计者和熟悉业务的人来说,这些歧义并没有什么太大的影响,而对于一个新来的同事而言,会为新同事熟悉业务造成不小的困扰。

那么如何避免这些问题,这就要在项目开始的时候遵守开发规范,不可半途而废。
1、一定要有数据库维护文档,这些文档尽量让一个人来维护。
2、所有的字段要做一个统一维护,避免歧义。
3、在业务中划分不同的模块,可以加前缀区分,例如:交易模块td_,资金cp_
4、在业务开发过程中很难遵守第三范式,会存在相当多的冗余字段,目的也是为了业务更好的展开,在设计过程中冗余的字段尽量是那些不变的字段,例如姓名、身份证等

猜你喜欢

转载自blog.csdn.net/zhangsweet1991/article/details/80840153