数据库结构命名规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库结构命名规范
目录
第一章介绍
1.目的
2.范围
3.文档约定
4.参考文档
第二章命名及设计规范
1.数据库表(Table)、字段(Field)命名及设计规范
1.1表命名规范
1.2列命名规范
1.3设计规范
2.存储过程(Procedure)命名及设计规范
2.1命名规范
2.2设计规范
3.函数(Function)命名及设计规范
3.1命名规范
3.2设计规范
4.视图(View)命名及设计规范
4.1命名规范
4.2设计规范
5.触发器(Trigger)命名及设计规范
5.1命名规范
5.2设计规范
6.主键(Primary Key)命名规范
7.外键(Foreign Key)命名规范
8.索引(Index)命名规范
9.约束(Check、Constraint)命名规范
第一章介绍
1.目的
整理《数据库结构规范》的目的是:增加数据库对象的可读性,在设计上尽量规范化,标准化,方便系统后期维护。
2.范围
如没有特殊规定,本《数据库结构规范》文档适用于产品中心的所有开发项目的数据库设计。
3.文档约定
在本规范中,采用标准的文档书写约定,章标题使用粗体三号字,节标题使用粗体的小四号宋体,小节标题采用粗体的五号字体,正文采用正常的五号宋体。术语解释时术语部分加以下划线表示。
4.参考文档
1.百度文库《数据库命名及设计规范V1.0.3》
第二章命名及设计规范
1.数据库表(Table)、字段(Field)命名及设计规范
1.1表命名规范
1)表名用T-_作为标识,表名一般不超过三个英文单词,长度不能超
过30个字符。表名必须是易于理解,能表达表的功能的英文单词或缩写英文单词:如果业务表的含义用英文表述困难,也可用汉语拼音方式命名。无论是完整英文单词还是缩写英文单词,抑或是汉语拼音,单词必须大写。表名中含有单词全部采用单数形式,例如,使用USER,而不是USERS。
2)表中含有的单词建议用完整的单词,多个单词间用下划线(_)进
行连接。如果导致表名长度过长,则从最后一个单词开始,依次向前采用该单词的缩写。(如果没有约定的缩写,则采用该单词前4个字母来表示)。
3)对于有主明细的表来说。明细表名为:主表名+_DTS。例如:采购
定单的表名为:T_PO_ORDER,则采购定单的明细表名为:T_PO_ORDER_DTS。
4)一般表采用“系统名_+T_模块名_表义名”格式构成,其他特殊情
况如:
●若数据库中只含有单个系统,命名可去掉前缀“系统名_”,采用
“T_模块名_表义名”格式构成。
●若数据库中只含有单个模块,命名可去掉“模块名”,采用“系统
名_+T_表义名”格式构成。
●临时表采用“系统名_+T_TEMP_表义名”格式构成。
●关联表命名为RE_表A_表B,RE是Relative的缩写,表A和表B均
采用其表义名或缩写形式。
例如:
A.如果有一个模块叫做Bulletin Board System(缩写为BBS),那么
你的数据库中所有对象的名称都要加上这个前缀:T_BBS_+数据库
对象名称,T_BBS_CUSTOMER_INFO标示论坛模块中的客户信息
表。
B.如果有一个系统叫做行政服务(缩写为XZFW),其中有一张表
记录补齐补正业务,由于用英文表达其含有较难或不准确,可以
用汉语拼音为其命名:XZFW_T_ +拼音名,XZFW_T_ BUQIBUZHENG.
1.2列命名规范
1)列统一采用“CL_”作为前缀。
2)采用有意义的列名,列名必须是易于理解,能表达列功能的英文单
词或缩写英文单词;如果列的含义用英文表述困难或不准确,也可用汉语拼音字母的方式命名。无论是完整英文单词还是缩写英文单词,抑或是汉语拼音,不超过三个英文单词,长度不能超过30个字符,一般用完整的英文单词,单词必须大写。在同一数据表内,不允许同时出现英文和拼音字母两种命名方式的列。多个单词间用下划线(_)进行连接。例如:人员信息表中的电话号码所在列可命名为:CL_TELEPHONE或CL_TEL。产品明细表中的产品名称所在列名可用
CL_PRODECT_NAME表示。办件表中的审批事项名称所在列名可用拼音字母的方式表示为CL_SPSXMC。
3)表中的主键名使用:“CL_ID”,其数据类型为varchar,主键数据
一律采用java程序或存储过程按照一定的规则生成,不允许采用自增长的数据,如identity,sequences等。
如项目无特定需求,主键生成规则如下:
主键采用字符型,长度为18位XXXXXX XXXXXXXXX XXX
前六位代表记录生成的年、月、日,如:Q71225
中间九位代表记录生成的时、分、秒、毫秒,如
后三位为生成的随机码,随机码采用java.util.Random生成。
那么2007年12月26日15时44分产生的数据记录,其主键应类似于
(注:主键生成的规则需抽象出具体方法放入底层架构中)
4)系统中属于是业务范围内的编码的列,其代表一定的业务信息,比
如办件信息和单据的编号,这样的列建议命名为:业务含义+“_CODE”,其数据类型为varchar,该列需加唯一索引。如:组织机构代码可命名为CL_ORGAN_CODE。
5)在命名表的列时,不要重复表名;例如,在名为T_SYS_USER的表
中避免使用名为CL_USERNAME的列,应直接使用CL_NAME。
6)不要在列名中包含数据类型。
7)不要使用“ID”作为列名。
8)关联列命名以“CL_关联表的表义名(或缩写)_列名”构成。
1.3设计规范