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

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

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

我该留下还是该走?


当前回答

我坚持表名和任何编程实体使用单数。

原因是什么?事实上,英语中有不规则的复数形式,如mouse⇒ 老鼠和绵羊⇒ 羊然后,如果我需要收集,我只需要使用老鼠或绵羊,然后继续。

这确实有助于多元性脱颖而出,而且我可以通过编程轻松地确定这些东西的集合是什么样子的。

所以,我的规则是:所有事物都是单数,所有事物的集合都是单数的,并加上s。也有助于ORM。

其他回答

我一直认为那是一个愚蠢的惯例。我使用多个表名。

(我相信这一策略背后的原因是,它使ORM代码生成器更容易生成对象和集合类,因为从单数名称生成复数名称比从单数名称中生成复数名称更容易)

可能的替代方案:

重命名表SystemUser使用括号保留多个表名。

IMO使用括号从技术上来说是最安全的方法,尽管它有点麻烦。IMO是一个6个,另一个6打,您的解决方案实际上只是归结为个人/团队偏好。

举个简单的例子:

SELECT Customer.Name, Customer.Address FROM Customer WHERE Customer.Name > "def"

vs.

SELECT Customers.Name, Customers.Address FROM Customers WHERE Customers.Name > "def"

后者中的SQL比前者听起来更奇怪。

我投票支持单数。

我通过将表命名为“雇员”(实际上是“雇员”)来解决同样的问题。我尽量避免与可能保留的单词发生冲突。即使是“用户”对我来说也很近。

我认为使用单数是我们在大学里学到的。但同时,您可能会认为,与面向对象编程不同,表不是其记录的实例。

我想我现在倾向于单数,因为英语中的复数不规范。在德语中,由于没有一致的复数形式,情况更糟——有时,如果没有前面的指定冠词(der/die/das),你就无法判断一个单词是否为复数。无论如何,在汉语中没有复数形式。