美文网首页
数据库设计规范

数据库设计规范

作者: 念尘草 | 来源:发表于2018-06-14 21:07 被阅读0次

        在开发一个大型应用平台,涉及的表少则十几张,多则上百。合理的数据库设计 对于平台可持续发展至关重要,下面分别从以下方面对数据库设计规范进行阐述:

    一、表名组织方式


    格式:"子系统代号"+"-"+"表名”;

    说明:一个平台往往由多个子系统组成,第个子系统有各自特定的表。为了与其他子系统区别开,约定在表名需要加"子系统代号"作用前缀进行区分,

    二、表名命名规范


    1、以英文命名,不得使用中文拼音。

    2、组合词不得用“_”进行连。

    此方式与oracle官方推荐方式冲突,这是因为Oracle之前不支持大小写。但考虑到除Oracle外大部分数据都支持大小写,因此采用此种方式

    3、建议英文全拼,不要使用缩小。

    4、多个子系统公共的基础表,我们以约定以"com"作为前缀。如用户表:com_user;

    三、表设计原则


    3.1、表设计须考虑业务的可扩展性。

    场景:需要对我们业务中设备表部分数据进行分类,且存在一种设备存在多种分类情况。

    错:增加一个设备分类表,然后在设备表中增加一个字段存储所归属类型的id,多个用”,“隔。

    对:增加一个设备分类表,和一个分类成员表。在分类成员表中添加两都的对应关系。

    原因:

    1、并不是所有的设备都有分类,在设备表中增加分类字段造成大量空值信息。

    2、一个设备存在多种分类,如果以增加字段并以","分隔方式会给日后按该字段统计增加难度

    3.2、表名所表达的意思与存储数据应该是包含关系。

    错:卡口设备表中存储视频设备

    错:车辆布控表中存储电子围栏布控数据

    对:人员表中存储警员信息。

    3.3、公共基础模块或可能需要存储同种不同类的表命名尽量虚化

    场景:需要存储单位所警员表信息

    错:在基础模块中增加表com_policeman

    对:基础模块如有com_person表,把警员信息作为人员表中的一种类型数据存储,没有则新建一个com_person表。

    3.4、遵循数据库设计三范式

    1、第一范式

    数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项

    2、第二范式

    要求数据库表中的每个实例或记录必须可以被唯一地区分。

    3、第三范式

    要求一个关系中不包含已在其它关系已包含的非主关键字信息

    四、表字段设计规范


    4、1,命名规范

    1、字段简约,不得出现表名关键字。

    场景:为人员名com_person主键,姓名,关联单位等字段

    错:personId,personName,departmentId

    对:id,name,departmentId

    说明:主键与姓名字段设计不需要加person关键字,因为表名中存在person,把表名与字段结构起来可完整表达该字段的意思,所以没有必要加person。至于单位它是一个外键字段,需要把单位表关键字department加上才能与id区别开来。

    2、不得以数据库关键字命名字段

    错:排序:order ,人员类型:type,单位级别:level,分组:group,禁用:disable

    对:排序:sort,人员类型:personType,单位级别:grade,分类:groupType,禁用:disabled

    3、使用英文全拼,不得用中文拼音或缩写

    错:姓名:xm,单位类型:deptType

    对:姓名:name,单位类型:departmentType

    4、同组属性字段命名要保证相关性。

    错:号牌号牌:vehiclePlate,号牌种类:plateType

    对:号牌号牌:plateNo,号牌种类:plateType

    5、不同表中的相关属性的字段命名保持一持

    相关文章

      网友评论

          本文标题:数据库设计规范

          本文链接:https://www.haomeiwen.com/subject/otcueftx.html