命名表和视图时应该遵循什么标准?

Bet*_*zel 21 naming-convention relational-theory

命名表和视图时应该遵循什么标准?例如,将 tbl_ 之类的内容放在表名的开头是否是个好主意?我是否应该以某种方式指定代码/查找表,例如 ct_、lut_ 或代码_?还有其他的做/不做吗?

我正在使用 MS SQL Server 并且有许多带有许多表的数据库,所以如果有一些我们可以用作标准并带有一些支持理性的东西会很好。

mrd*_*nny 29

好的,首先永远不要把 tbl 放在表名的前面。这是一张桌子,我们现在已经知道了。这就是所谓的匈牙利符号,人们在 5 多年前就停止这样做了。

只需根据对象的内容调用对象即可。如果表包含员工数据,则称其为“员工”。如果它包含有关计算机的信息,则称其为“计算机”。如果它将计算机映射到员工,则称其为“EmployeeComputer”或“ComputerEmployee”(我个人更喜欢“EmployeeComputer”)。

没有真正正确的命名约定可以使用(除了不使用匈牙利表示法)。只要对象名称有意义,它就很重要。

  • 除此之外,请不要将表的名称作为复数名词,因为我已经看到了雇员、计算机的例子..我们都知道表应该有很多行,而不是一个.. (11认同)
  • 当我们想要执行诸如连接几个表或将代码值转换为人类可读值之类的操作时,我们会使用视图。第二种情况是您最终会得到一个模拟名称。 (2认同)
  • 丹尼先生的回答和以下贡献者得到以下支持:http://dba4life.blogspot.com/2007/11/good-database-design-part-2-naming.html (2认同)

gbn*_*gbn 13

我们使用模式(可能将它们视为 SQL 中的命名空间)用于权限和分组。所以,而不是“tbl”等我们有

  • 数据.事物
  • 数据.事物历史
  • 数据.东西

没有代码进入数据模式。没有表位于数据模式之外。如果您愿意,这当然可以扩展为具有 Lookup 或 Staging 模式。

对于我们使用的视图vw,这是为了将它们与 SQL Server 2000 中的表区分开来,现在它有点遗留

  • +1 用于推荐模式。这在维护具有 100 个表的大型数据库时会派上用场。我们也使用架构进行功能分组......就像在 AdventureWorks db 中所做的一样 (3认同)

ber*_*d_k 5

就个人而言,我是Fanö Bedingung忠实粉丝,这意味着这里不允许名称作为另一个有效名称的开头。

其次,两个名字之间的汉明距离比一个不同的字母要好。

是的,这是前数字时代的规则,但它们使生活更轻松。

第三个名字必须是可发音的,否则当语音识别成为现实时,你会发疯。

  • 当语音识别成为现实时,无论如何我都会生气。:-) (2认同)