SQL Server 数据库相关命名规范


基本命名

数据库名

  • 采用Pascal Case命名规范
  • 使用产品或项目名字命名
  • 禁止使用特殊符号,如数字、下划线、空格之类
  • 禁止使用缩写

如:AdventureWork

数据表名

  • 采用Pascal Case命名规范
  • 采用复数形式且复数仅添加在最后一个单词上
  • 禁止使用特殊符号,如数字、下划线、空格之类
  • 禁止使用缩写
  • 采用名词性质的单词全拼
  • 表名称不超过3个单词

如:ProductsUsersUserRolesBookAuthors...

表字段名

  • 采用Pascal Case命名规范
  • 禁止与表名重复
  • 禁止使用数据类型作为前缀
  • 禁止使用特殊符号,如数字、下划线、空格之类
  • 禁止使用缩写

常用对象缩写

  • SP 存储过程
  • TR 触发器
  • FN 函数
  • PK 主键
  • IX 索引

表字段命名

  • 表中字段使用名词性质的单词全拼
  • 采用一个或多个单词组成且首字母大写
  • 表自增主键统一采用 ID
  • 表唯一主键统一采用 表名+ID
  • 表外键名称采用 主表名+列名
  • 表字段为布尔类型,统一使用诸如IsHas前缀
  • 表字段表示当前状态,统一使用Status且默认值为0,在删除时仅改变其状态值。
  • 表字段表示备注描述等信息,统一使用Remark
  • 表字段表示名称时,应采用表名+Name
  • 表字段为日期时间,默认为系统时间,一律使用DateTime作为后缀。
  • 表中统一添加创建时间和修改时间字段,统一使用CreatedAtUpdatedAt

存储过程命名

规范的命名可提高开发和维护的效率,存储过程参考以下命名规范,建议采用动词+表名来描述操作类型。

存储过程命名包含项目

  • 操作方式
    • 如典型的CURD代表的增删改查操作
  • 操作对象
    • 表名表示单条数据
    • 表名+List表示多条数据
    • Data表示非单表数据
  • 操作条件
    • 使用By表示操作条件关键字
    • 若条件个数小于等于2个则使用By+条件,如GetUserInfoByUserIDGetUserListByClubID
    • 若条件个数大于2个则使用BySome,如GetUserListBySome
  • 特殊意义
    • For表示特殊意义关键字,多种条件可采用ForAForBFor...,如GetUserListBySomeForPage

存储过程命名语法规范

[proc][MainTableName]By[FieldName(Optional)][Action]
  • [proc] 存储过程前缀,系统存储过程前缀使用sp_,用户存储过程前缀可使用uspproc...

    注意:请勿自定义存储过程时使用sp_前缀,游戏SQLServer会优先查找系统存储过程,此命名会造成存储过程缓慢的问题。

    例如:

    procClientByCoNameSelect

    procClientByClientIDSelect

  • [MainTableName]

    存储过程主要访问的对象

  • [FieldName(optional)]

    可选字段名的条件子句,如proc_UserInfoByUserIDSelect

  • [Action]

    行为动词后缀,即存储过程将要执行的任务。

推荐行为动词后缀

Select 返回一条或多条记录,如procClientRateSelect

Insert 插入数据,如procEmailMergeInsert

Update 更新数据

Save 插入和更新数据

Delete 删除数据

Create 更新表数据,如删除并删除 DropAndCreate

Output 返回输出参数或0

Validate 验证操作

Get 获取记录

其他常见行为动词后缀

Oper 包含增删改查操作

Join 加入

Add 添加

Get 获取

Set 设置

知识共享许可协议
《SQL Server 数据库相关命名规范》 常伟华 创作。
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议 | 3.0 中国大陆许可协议进行许可。

站内公告

A PHP Error was encountered

Severity: Core Warning

Message: PHP Startup: zip: Unable to initialize module Module compiled with module API=20060613 PHP compiled with module API=20090626 These options need to match

Filename: Unknown

Line Number: 0

Backtrace: