命名表和视图时应该遵循什么标准?例如,将 tbl_ 之类的内容放在表名的开头是否是个好主意?我是否应该以 ct_、lut_ 或 code_ 之类的方式指定代码/查找表?还有其他的做/不做吗?
我正在使用 MS SQL Server 并且有许多数据库和许多表,所以如果有一些我们可以用作标准的东西并带有一些支持理性,那就太好了。
命名表和视图时应该遵循什么标准?例如,将 tbl_ 之类的内容放在表名的开头是否是个好主意?我是否应该以 ct_、lut_ 或 code_ 之类的方式指定代码/查找表?还有其他的做/不做吗?
我正在使用 MS SQL Server 并且有许多数据库和许多表,所以如果有一些我们可以用作标准的东西并带有一些支持理性,那就太好了。
好的,首先永远不要把 tbl 放在表名的前面。这是一张桌子,我们现在已经这样做了。这就是所谓的匈牙利符号,人们在 5 年前就不再这样做了。
只需根据它是什么来调用对象。如果一个表包含员工数据,则将其称为“员工”。如果它包含有关计算机的信息,则将其称为“计算机”。如果它将计算机映射到员工,则将其称为“EmployeeComputer”或“ComputerEmployee”(我个人更喜欢“EmployeeComputer”)。
没有真正正确的命名约定可以使用(除了不使用匈牙利符号)。只要对象名称有意义,它就很重要。
我们使用模式(可能将它们视为 SQL 中的命名空间)来进行权限和分组。所以我们有而不是“tbl”等
没有代码进入数据模式。没有表存在于数据模式之外。如果您愿意,这当然可以扩展为具有查找或暂存模式。
对于我们使用的视图
vw
,这是为了将它们与 SQL Server 2000 中的表区分开来,现在它有点旧了就我个人而言,我是Fanö Bedingung的忠实粉丝,这意味着在这里不允许名称作为另一个有效名称的开头。
其次,两个名字之间的汉明距离比一个不同的字母要好。
是的,这是前数字时代的规则,但它们让生活更轻松。
第三个名字必须是可发音的,否则当语音识别成为现实时,你会发疯的。
我不知道那里真的有任何“最佳”命名约定,因为它真的归结为个人喜好和易于开发。我的建议是选择一个命名约定并遵守它。如果您希望用下划线分隔单词,请在所有数据库对象中这样做。如果您希望使用 camelCase,请在所有数据库对象中这样做。
在我的商店中,我们遵守以下规则:
我们用下划线分隔单词并使用所有小写字母。
我们的表名描述了它们是什么:dbo.person、dbo.invoice。
我们的多对多表名称还描述了它们是什么(添加mm以指示映射的多对多关系:dbo.person_mm_address。我们的用户定义存储过程描述了对象和正在执行的操作:usp_person_select , usp_address_select_by_city 我们的视图和函数遵循与存储过程相同的规则。我们的索引包括表、键列(按顺序)和集群/非集群的指示:ix_person_last_name_first_name_nc
仅仅因为这是我们在我的商店中使用的,并不意味着这些规则适合您。选择您和您的开发团队一致认为既有用又易于开发的东西,并建立一种了解和使用您决定的任何命名约定的文化。在我们的例子中,这包括对数据库中创建的任何对象的代码审查。随着时间的推移,记录的命名约定和同行代码审查的结合导致与约定的偏差越来越少。
我希望这个“不回答”在某种程度上有所帮助。
几年前我就满足于这些
如果您有一个便宜的共享主机包,您需要在所有对象前面使用项目缩写,例如数据库管理员站点、da_users、da_questions