一、SqlServer 命名规范

(一)设计原则
符合三大范式(每一列表达一个意思,每一行代表一个实例/每一行有唯一键/表内没有其它表的非主键信息)
每个表应该有的3个有用字段(记录创建或更新时间/记录创建者/记录版本)
避免保留字
表应避免可为空的列

二、命名规范

表名如Order/UserAccout
符合以下规范:

  1. 统一采用单数形式,反对Orders
  2. 首字母大写,多个单词的话,单词首字母大写,反对order/Useraccout/ORDER
  3. 避免中文拼音,反对AgentBaoCi
  4. 避免下划线连接,反对User_Accout(下划线适用Oracle数据库)
  5. 避免名称过长,控制在3个英文单词长度(22个字母),反对WebsiteInfomationModifyRecord
  6. 据库表名应该有意义,并且易于理解,最好使用可以表达功能的英文单词或缩写,如果用英文单词表示,建议使用完整的英文单词,避免保留字。

字段
字段名如userID/userName/userType
符合以下规范:
1.首个字母小写,多个单词的话,单词首字母大写,反对UserID/Userid
2.必须有一主键,主键不直接用ID,而是表名+ID,如userID/orderID
3.常用的字段name,不直接用name,而是表名+Name,如userName/orderName
4.常用的字段desc,不直接用desc,而是表名+Desc,如userDesc/orderDesc
5.大写字母前必须包含至少两个小写的字母,反对uID/oID
6.避免中文拼音,避免下划线连接
8.避免名称过长,避免保留字
9.避免字段(列名)中包含数据类型,如:datetime
10.避免数据库关键字,如:name,time ,datetime password 等

对象

  1. 存储过程以SP_为前缀
触发器以TR_为前缀
函数以FN_为前缀
主键以PK_为前缀
索引以IX_为前缀
前缀后的首字母大写,多个单词的话,单词首字母大写,如SP_CountFee
所有的关键字的所有字母必须大写,如SELECT userID,username FROM User

(三)数据库表分类
表前缀主要是为了区分不同功能的表,而非解释表的功能,表的功能由表名来解释。前面要求表名的长度要控制在30个字符以内,在此前提下,为了尽可能不影响表的命名,表前缀应该越短越好。我们建议表前缀控制在两个以内。具体表前缀添加规则建议如下,括号内的单个大写字母表示要添加的前缀。这里以SQLserver2014数据库为例说明:
例:

1.系统表(S_):System,系统配置相关的基本信息表。系统用户表(S_User)、系统角色表(S_Role)、系统菜单(S_LinkMenu)、操作日志(S_OperationLog)、登录日志(S_LoginLog)、系统字典(S_Dictionary)、系统字典类型(S_DictionaryType)等。

SQL server数据库实例名修改有关系吗 sql server实例名格式_mysql


SQL server数据库实例名修改有关系吗 sql server实例名格式_首字母_02

2.字典表(D_):Dictionary,非系统字典外的字典表。在“设计规范”——“相关注释”——“字典字段”中提到过字典表的定义,除了数据库中的通用字典表,还有一些常见表,比如地区表(D_Region)、ICD编码(D_ICD)等,也是一种字典表,这里的D_前缀即加在这类字典表名前面。

SQL server数据库实例名修改有关系吗 sql server实例名格式_首字母_03


SQL server数据库实例名修改有关系吗 sql server实例名格式_mysql_04

3.中间表(R_):Relationship,多对多关系中间表。具体命名方式建议为:R_主表名_从表名,在多对多关系中其实不分主从表,这里我们规定核心表为主表,另外一个为从表。比如用户角色关系中,用户表(S_User)为主、角色(S_Role)表为从,那中间表就命名为R_User_Role。当中间表名超长时,则根据实际情况缩写主从表名,建议优先缩写从表表名。

SQL server数据库实例名修改有关系吗 sql server实例名格式_表名_05


SQL server数据库实例名修改有关系吗 sql server实例名格式_首字母_06

4.业务表(B_):Business,核心业务涉及的基本信息表。这里的业务是非系统配置业务相关的,比如登录、注册、权限这些业务涉及的表都是和系统配置相关的,前缀应该是S_,而非B_。比如在线商城的项目中订单业务涉及的表即是核心业务表,会诊系统中会诊单业务涉及的表即是核心业务表,如果项目庞大,涉及业务较多,可以在B后面继续加单字母区分不同的业务,BA_、BB_、BC_……,没必要非得和某个英文对应,只是个代号,和项目组的人员说明即可。

SQL server数据库实例名修改有关系吗 sql server实例名格式_字段_07


SQL server数据库实例名修改有关系吗 sql server实例名格式_mysql_08

表名前缀的说明如上,已经足够明确,除此外还应该避免无谓的表格后缀。比如存储客户信息的表直接命名为Guest而非GuestInfo,存储航班信息的表直接命名为Flight而非FlightList。还有命名表时,一律使用单数形式。例如,使用 Employee,而不是 Employees,总之,表的命名应该简单明了。

SQL server数据库实例名修改有关系吗 sql server实例名格式_表名_09

Name:当前字段的显示名称 Code:保存到数据库的名称 Data Type:当前字段的数据类型

Length:长度

假设某列的数据给关闭了可点击此按钮进行复原操作

SQL server数据库实例名修改有关系吗 sql server实例名格式_mysql_10