数据库规范
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了数据库规范,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3623字,纯文字阅读大概需要6分钟。
内容图文
![数据库规范](/upload/InfoBanner/zyjiaocheng/458/e9b3c6236eeb4163829b051aebe8ceee.jpg)
表设计规范:遵守三个范式
第一范式: 数据表中的所有字段都不可再分;
下图不满足第一范式:
下图的用户信息表将“地址” 这个属性拆分成“省份”、“城市”、“详细地址”,这样
就满足了第一范式,同时基于对“城市”的查询性能也相应提升。
第二范式:一个表中只能保存一种数据,不可以把多种数据保存在一张表中
下图的订单信息表中即存在商品信息,又有订单信息,因此存在数据冗余,不符合2NF
下图是拆分成符合2NF后的表结构:
第三范式:需要确保表中的每一列数据都和主键直接相关,而不能间接相关
下图这两个表所示的设计就是一个满足第三范式的数据库表,这样在查询订单信息的时候,就 可以使用客户编号来引用客户信息表中的记录,从而不必在订单信息表中多次输入客户信息的内 容,减少了数据冗余。
命名规范
长度规范
凡是需要命名的对象其标识符均控制在30个字符以内,表名、字段名、函数名、存储过程、触发器、视图等名字长度要尽量不超过30个字符长度。
大小写规范
遵循 Pascal 命名规范, 即每个单词的首字母都大写, 其它字母小写, 比如: 产品名称命名为 ProductName ,单价命名为 UnitPrice 。
构成规范
名称必须以字母开头,但严禁以系统关键字开头, 名称只能含有字母、 数字以及下划线“_”三类字符, “_”用于间隔名称中的各语义字段;不要使用系统保留字作表名。 比如: 产品表命名为 Product , 订单表命名为 Order ,产品和订单是多对多关系, 关系表命名为 Order_Product 。
主键
统一命名为 Id ,除临时表、日志表之外, 其它表都要建立主键, 主键最好设计成单一主键,尽量不要用复合主键,尽量使用没有业务语义的字段作为主键,如采用按顺序自增的数值型字段为主键。
外键
统一命名为主键表表名 + Id 的形式, 如果数据表有多个外键的主键表是相同的, 则采用逻辑词 + 主键表明 + Id 的形式, 数据类型必须和主键表的主键一致, 如下图所示:
上图中 ProductSubcategoryId 是外键, 对应的主键表为 ProductSubCategory , SizeUnitMeasureId 和 WeightUnitMeasureId 也是外键, 对应的主键表为 UnitMeasure 。
列名规范
使用名词, 采用有意义的字段名,使描述尽可能清楚, 不要缩写。
数据类型
要根据实际应用选择合适的类型,如字段的数据为小于255的整形数字,那么就要选择TINYINT;如字段数据小于32767的整形数字,那么就要选择SMALLINT,如字段文本长度固定为8位,那么就要用CHAR(8);如文本长度最大为100,并且大小是非定长的,那么就要设VARCHAR(100),并且以上文本若为汉字,那么就要设为NVARCHAR和NCHAR。
注释规范
每个表,每个字段都要有注释,说明其含义,对于冗余字段还要特别说明其维护方法,外键字段要说明参照于那个表,另外对于存储过程、视图、触发器、函数等代码均要增加注释,以保持代码的可读性以及后续的可维护性。
必备字段
每个表必须有下面几个必备字段:
上图中 ProductSubcategoryId 是外键, 对应的主键表为 ProductSubCategory , SizeUnitMeasureId 和 WeightUnitMeasureId 也是外键, 对应的主键表为 UnitMeasure 。
列名规范
使用名词, 采用有意义的字段名,使描述尽可能清楚, 不要缩写。
数据类型
要根据实际应用选择合适的类型,如字段的数据为小于255的整形数字,那么就要选择TINYINT;如字段数据小于32767的整形数字,那么就要选择SMALLINT,如字段文本长度固定为8位,那么就要用CHAR(8);如文本长度最大为100,并且大小是非定长的,那么就要设VARCHAR(100),并且以上文本若为汉字,那么就要设为NVARCHAR和NCHAR。
注释规范
每个表,每个字段都要有注释,说明其含义,对于冗余字段还要特别说明其维护方法,外键字段要说明参照于那个表,另外对于存储过程、视图、触发器、函数等代码均要增加注释,以保持代码的可读性以及后续的可维护性。
必备字段
每个表必须有下面几个必备字段:
名称 | 类型 | 是否可空 | 默认值 | 描述 |
---|---|---|---|---|
IsEnabled | bit | 否 | 0 | 是否启用 |
CreateUserId | nvarchar(50) | 否 | 创建用户Id | |
CreateTime | datetime2(3) | 否 | 创建时间 | |
ModifyUserId | nvarchar(50) | 否 | 修改用户Id | |
ModifyTime | datetime2(3) | 否 | 修改时间 | |
RowGuid | uniqueidentifier | 否 | (newsequentialid()) | 数据记录Guid |
RowVersion | rowversion | 否 | 数据记录版本 |
关系图
如果一个业务涉及的表超过三个, 请在数据库中添加关系图, 说明这些表之间的关系, 如下图所示:
数据库规范
标签:
本文系统来源:http://www.cnblogs.com/zgyijg/p/4845820.html
内容总结
以上是互联网集市为您收集整理的数据库规范全部内容,希望文章能够帮你解决数据库规范所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。