学术界认为,表名应该是存储其属性的实体的单数。

我不喜欢任何需要在名称周围加方括号的T-SQL,但我已经将一个Users表重命名为单数,这永远意味着使用该表的人有时不得不使用括号。

我的直觉是,保持单数更正确,但我的直觉也是,括号表示不需要的东西,比如列名中有空格等。

我该留下还是该走?


当前回答

我曾经在User表中使用过“Dude”——同样短的字符数,与关键字没有冲突,仍然是对普通人的引用。如果我不担心那些可能看到代码的愚蠢的人,我会一直这样做。

其他回答

就“标准”而言,其他人给出了相当好的答案,但我只是想补充一下。。。是否可能“用户”(或“用户”)实际上不是表中数据的完整描述?并不是说你应该对表名和特定性太着迷,但也许像“Widget_Users”(其中“Widget”是应用程序或网站的名称)这样的东西会更合适。

这可能有点多余,但我建议谨慎行事。重命名表不一定是坏事,但标准化就是这样;一个标准——这个数据库可能已经被“标准化”了,无论多么糟糕:)——我建议一致性是一个更好的目标,因为这个数据库已经存在,而且它可能不仅仅由两个表组成。

除非您能够标准化整个数据库,或者至少计划为此目的而努力,否则我怀疑表名只是冰山一角,专注于手头的任务,忍受命名不好的对象的痛苦,可能符合您的最大利益--

实际一致性有时是最佳标准…:)

my2内容---

指导方针确实如此。这不是“板上钉钉”,这就是为什么你可以选择忽略它们。

我想说,使用多个表名在逻辑上更直观。表毕竟是实体的集合。除了提到的其他选项,我通常在表名上看到前缀。。。

tbl用户tbl此待定tbl其他

我并不是建议这样做,我也看到表名中使用了很多空格,我对此深恶痛绝。我甚至遇到过带有白痴字符的域名,比如?好像说这个字段回答了一个问题。

如果您使用对象关系映射工具,或者将来会使用,我建议您使用Singular。

一些工具(如LLBLGen)可以自动更正多个名称(如用户到用户),而无需更改表名本身。为什么这很重要?因为当它被映射时,你希望它看起来像User.Name而不是User.Name,或者更糟糕的是,我的一些旧数据库表命名为tblUsers.strName,这在代码中令人困惑。

我的新经验法则是判断它转换成对象后的外观。

我发现一个不适合我使用的新命名的表是UsersInRoles。但总会有一些例外情况,即使在这种情况下,它看起来也很像UsersInRoles.Username。

我曾经在User表中使用过“Dude”——同样短的字符数,与关键字没有冲突,仍然是对普通人的引用。如果我不担心那些可能看到代码的愚蠢的人,我会一直这样做。