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

数据库设计规范

作者: 念尘草 | 来源:发表于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