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

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

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

我该留下还是该走?


当前回答

我只对拼写相同的表名使用名词,无论是单数还是复数:

驼鹿鱼鹿飞机你内裤短裤眼镜剪刀种孩子

其他回答

如果你去那里会有麻烦,但如果你留下来,麻烦就会加倍。

我宁愿违背一些假定的非复数命名惯例,也不愿用可能是保留词的名称来命名我的表。

我也会使用复数形式,对于前面提到的用户困境,我们确实采用了方括号方法。

我们这样做是为了在数据库体系结构和应用程序体系结构之间提供一致性,基本上理解为用户表是用户值的集合,就像代码工件中的用户集合是用户对象的集合一样。

让我们的数据团队和开发人员使用相同的概念语言(尽管不总是相同的对象名称),可以更容易地在他们之间传达想法。

我只是说说我为什么用单数名。

例如,我需要从用户处获取所有字段:

-- Select every fields from 'user' table
SELECT * FROM user

我需要21岁用户的姓名:

-- Select every fields from 'user' table which have 21 years old
SELECT * FROM user WHERE age = '21'

当然,复数形式也可以用同样的方式,但对于我的大脑来说,我真的认为这是正确的方式。

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

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

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

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

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