我从 MSDN 找到了命名指南,但是 Microsoft 是否有针对 MSSQL 数据库的指南?
SQL Server AdventureWorks 数据库中使用的命名约定在风格方面展示了许多最佳实践。
总结一下:
您可以在这里找到更多详细信息:
需要注意的是:数据库命名约定可能非常有争议,我遇到的大多数数据库开发人员都对其风格有个人兴趣。我听到过关于表应该命名为“OrderHeader”还是“OrderHeaders”的激烈争论。
不,没有,但请记住您提供的链接中的做法。
关于命名存储过程 - 不要在它们前面加上“sp_”前缀您可以在此链接中阅读更多有关原因的信息:
“不要在存储过程前加上前缀 sp_,因为这个前缀是保留的 用于识别系统存储的 程序。”
如果您要构建 SQL Server 命名约定指南,我建议从 Konstantin 在 GitHub 上的文档开始。
我不知道@8kb(在撰写本文时)的答案中“风格方面的最佳实践”是什么意思。当然,一些列出的项目(“表名不是复数”,“没有下划线”等)仅仅是风格选择,显然是主观的。 我本以为文档团队负责人的个人偏好将是这里最重要的因素。
关于一般 SQL 中的启发式算法(与 T-SQL 等专有 SQL 相对),关于该主题的书只有一本书:Joe Celko 的 SQL 编程风格。SQL Server AdventureWorks 数据库的许多选择与 Celko 的存在冲突指南。
Celko 的命名约定基于国际标准 ISO 11179 例如:指定应使用分隔字符(例如下划线)来分隔名称中的元素。其他风格的选择也同样得到了研究的支持,例如列名称仅使用小写字母以帮助人眼扫描。毫无疑问,其中也存在主观的个人偏好,但它们是基于多年的现场经验。
从好的方面来说,近年来 SQL Server 文档中的情况有所改善,例如SQL 关键字大写,用分号分隔语句等。Adventure Works 是对 Northwind 和 pubs 的巨大改进。现在为什么 Management Studio 中的脚本功能不能输出看起来更容易一些的代码?!