
数据库命名规范(表、字段名).docx
5页数据库命名规范(表、字段名)一.实体和属性的命名1.常用单词已经进行了缩写,在命名过程当中,根据语义拼凑缩写即可注意,由于ORCAL 数据库会将字段名称统一成大写或者小写中的一种,所以要求加上下划线举例:定义的缩写 Sales: Sal 销售;Order: Ord 订单;Detail: Dtl 明细;则销售订单名细表命名为:Sal_Ord_Dtl;2. 如果表或者是字段的名称仅有一个单词,那么建议不使用缩写,而是用完整的单词举例:定义的缩写 Material Ma 物品;物品表名为:Material, 而不是 Ma.但是字段物品编码则是:Ma_ID;而不是 Material_ID3. 所有的存储值列表的表前面加上前缀 Z目的是将这些值列表类排序在数据库最后4. 所有的冗余类的命名(主要是累计表)前面加上前缀 X冗余类是为了提高数据库效率,非规范化数据库的时候加入的字段或者表5. 关联类通过用下划线连接两个基本类之后,再加前缀 R 的方式命名,后面按照字母顺序罗列两个表名或者表名的缩写关联表用于保存多对多关系如果被关联的表名大于 10 个字母,必须将原来的表名的进行缩写如果没有其他原因,建议都使用缩写。
举例:表 Object 与自身存在多对多的关系,则保存多对多关系的表命名为:R_Object;表 Depart 和 Employee;存在多对多的关系;则关联表命名为 R_Dept_Emp6.每一个表都将有一个自动 ID 作为主健,逻辑上的主健作为第一组候选主健来定义,如果是数据库自动生成的编码,统一命名为:ID;如果是自定义的逻辑上的编码则用缩写加“ID”的方法命名举例:销售订单的编号字段命名:Sal_Ord_ID;如果还存在一个数据库生成的自动编号,则命名为:ID7.所有的属性加上有关类型的后缀,类型后缀的缩写定义见文件《类型后缀缩写定义》,注意,如果还需要其它的后缀,都放在类型后缀之前二.关系的命名关系的命名基本上按照;如有特殊情况,可以灵活处理.[must/may/can/should][verb/verb+prep][a/many/exatly num][or a/many]的结构命名三.域的命名四.触发器的命名五.有关于默认的几点说明1. 严格依赖关系的主细表,主表的后缀 Main 可以不写2. 数据类型是文本的字段,类型后缀 TX 可以不写3. 有些类型比较明显的字段,可以不写类型后缀。
4. 非常明显的关系,可以不写///////////////////另一文章//////数据库设计规范数据库表命名规范 此规范包括表名命名规范,索引命名规范,外键命名规范和字段名命名规范 表名命名规则 数据库表的命名以是名词的复数形式且都为小写,如 cities, categories, friends 等等 如果表名由几个单词组成,则单词间用下划线("_")分割,如subscribed_pois,poi_categories 等 表名尽量用全名 表名限制在 30 个字符内当表的全名超过 30 字符时,可用缩写来减少表名的长度,如description desc;information info;address addr 等 表字段名命名规则 字段名为小写 字段名为有意义的单词,或单词的缩写 如果字段由几个单词组成,则单词间用下划线("_")分割,如 client_id,post_code 等 字段名限制在 30 个字符内当字段名超过 30 字符时,可用缩写来减少字段名的长度,如description desc;information info;address addr 等 索引命名规则 索引须按照 IDX_table_column>_column>,其中table>是建立索引的表名,column>是建立索引的字段名 索引名限制在 30 个字符内。
当索引名超过 30 字符时,可用缩写来减少索引名的长度,如description desc;information info;address addr 等 主键、外键命名规则 主键按照 PK_table>的规则命名,其中table>为数据库表名 唯一键按照 UK_table>_column>的规则命名,其中table>为数据块表名,column>为字段名 外键按照 FK_pppp>_cccc>_nn>的规则命名,其中pppp>为父表名,cccc>为子表名,nn>为序列号 数据库规范化设计的一些基本要求:一、表中应该避免可为空的列虽然表中允许空列,但是,空字段是一种比较特殊的数据类型数据库在处理的时候,需要进行特殊的处理如此的话,就会增加数据库处理记录的复杂性当表中有比较多的空字段时,在同等条件下,数据库处理的性能会降低许多解决方法:一是通过设置默认值的形式,来避免空字段的产生二是若一张表中,允许为空的列比较多,接近表全部列数的三分之一而且,这些列在大部分情况下,都是可有可无的若数据库管理员遇到这种情况,建议另外建立一张副表,以保存这些列二、表不应该有重复的值或者列三、表中记录应该有一个唯一的标识符。
四、数据库对象要有统一的前缀名五、尽量只存储单一实体类型的数据六、尽量符合数据库的几个范式设计规范所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary 、varbinary 外,必须有默认值字符型的默认值为一个空字符值串’’;数值型的默认值为数值 0;逻辑型的默认值为数值 0;其中:系统中所有逻辑型中数值 0 表示为“假”;数值 1 表示为“真”datetime、smalldatetime 类型的字段没有默认值,必须为 NULL当字段定义为字符串形时建议使用 varchar 而不用 nvarchar字段的描述数据库中每个字段的描述(Description)如下:表内的每一个值只能被表达一次表内的每一行都应当被唯一的标示表内不应该存储依赖于其他键的非键信息如果字段事实上是与其它表的关键字相关联而未设计为外键引用,需建索引如果字段与其它表的字段相关联,需建索引SQL 开发代码规范 我们规定 sql 语句编码的时候程序员需要遵循以下规范: a 所有的关键字的所有字母必须大写。
如果一个常量由几个词组成,我们规定两个词之间使用下划线(_)来划分表名、列名、视图名或它们的别名必须和它们的定义保持一致b 注释必须要规范其他设计技巧 1)避免使用触发器 触发器的功能通常可以用其他方式实现在调试程序时触发器可能成为干扰假如你确实需要采用触发器,你最好集中对它文档化2)使用常用英语(或者其他任何语言)而不要使用编码在创建下拉菜单、列表、报表时最好按照英语名排序假如需要编码,可以在编码旁附上用户知道的英语 3)保存常用信息让一个表专门存放一般数据库信息非常有用在这个表里存放数据库当前版本、最近检查/修复、关联设计文档的名称、客户等信息这样可以实现一种简单机制跟踪数据库,当客户抱怨他们的数据库没有达到希望的要求而与你联系时,这样做对非客户机/服务器环境特别有用 4)包含版本机制在数据库中引入版本控制机制来确定使用中的数据库的版本时间一长,用户的需求总是会改变的最终可能会要求修改数据库结构把版本信息直接存放到数据库中更为方便 5)编制文档对所有的快捷方式、命名规范、限制和函数都要编制文档采用给表、列、触发器等加注释的数据库工具对开发、支持和跟踪修改非常有用对数据库文档化,或者在数据库自身的内部或者单独建立文档。
这样,当过了一年多时间后再回过头来做第 2 个版本,犯错的机会将大大减少6)测试、测试、反复测试建立或者修订数据库之后,必须用用户新输入的数据测试数据字段最重要的是,让用户进行测试并且同用户一道保证选择的数据类型满足商业要求测试需要在把新数据库投入实际服务之前完成 7)检查设计在开发期间检查数据库设计的常用技术是通过其所支持的应用程序原型检查数据库换句话说,针对每一种最终表达数据的原型应用,保证你检查了数据模型并且查看如何取出数据。
