数据库命名约定由微软?

我从MSDN发现命名指南 ,但它是从微软的MSSQL数据库的任何指导?

SQL Server的AdventureWorks数据库中使用的命名约定展示了许多风格方面的最佳实践。

总结:

  • 对象名称很容易理解
  • 表名不是复数(“用户”表不是“用户”)
  • 缩写是less数,但允许(即数量,金额等)
  • PascalCase专门用于某些列名(例如rowguid)
  • 没有下划线
  • 某些关键字是允许的(即名称)
  • 存储过程以“usp”开头
  • 函数以“ufn”开头

你可以在这里find更多的细节:

  • AdventureWorks数据字典
  • 存储过程在AdventureWorks中
  • AdventureWorks中的函数

需要注意的一点是:数据库命名约定可能会引起争议,我遇到的大多数数据库开发人员都对他们的风格有个人利益。 我听说过一个表是应该命名为“OrderHeader”还是“OrderHeaders”的激烈争论。

不,没有,但你提供的链接中的做法是很好的记住。

关于存储过程的命名 – 不要用“sp_”作为前缀。你可以阅读更多关于为什么在这个链接 :

“不要用sp_前缀存储过程,因为这个前缀是为了标识系统存储过程而保留的。”

我不知道@ 8kb(撰写本文时)的答案是什么“风格方面的最佳实践”的意思。 当然,列出的一些项目(“表名不是多元化的”,“没有下划线”等)仅仅是主观的风格select。 我会认为文件组领导的个人偏好是最重要的因素。

关于SQL中的启发式(与T-SQL等专有SQL相反),关于这个问题只有一本书: Joe Celko的SQL编程风格 .SQL Server的AdventureWorks数据库的许多select与Celko的指导原则相冲突。

Celko的命名约定基于国际标准ISO 11179,例如,指定应使用分隔符(例如下划线)来分隔名称中的元素。 其他风格的select也同样通过研究来备份,例如使用小写字母作为列名,以便人眼帮助扫描。 毫无疑问,这里也有主观的个人喜好,但是他们是以多年的实践经验为基础的。

从另一方面来说,SQL Server文档近年来有所改进,例如SQL关键字大写,分号分隔语句等等。冒险作品在Northwind和pubs上是巨大的改进。 现在,为什么Management Studio中的脚本function不能吐出更简单的代码?!