学术界认为,表名应该是存储其属性的实体的单数。
我不喜欢任何需要在名称周围加方括号的T-SQL,但我已经将一个Users表重命名为单数,这永远意味着使用该表的人有时不得不使用括号。
我的直觉是,保持单数更正确,但我的直觉也是,括号表示不需要的东西,比如列名中有空格等。
我该留下还是该走?
学术界认为,表名应该是存储其属性的实体的单数。
我不喜欢任何需要在名称周围加方括号的T-SQL,但我已经将一个Users表重命名为单数,这永远意味着使用该表的人有时不得不使用括号。
我的直觉是,保持单数更正确,但我的直觉也是,括号表示不需要的东西,比如列名中有空格等。
我该留下还是该走?
当前回答
我有同样的问题,在阅读了这里的所有答案后,我肯定会选择SINGULAR,原因如下:
原因1(概念)。你可以把装苹果的袋子想象成“苹果袋”,不管是装0个、1个还是100万个苹果,都是同一个袋子。表只是容器,表名必须描述它包含的内容,而不是它包含多少数据。此外,复数概念更多地是关于口语的一个(实际上是为了确定是否有一个或多个)。
原因2。(方便)。用单数名字比用复数名字更容易。对象可以有不规则的复数形式,也可以完全没有复数形式,但总是有单数形式(新闻等少数例外)。
顾客顺序使用者地位消息
原因3。(美学和秩序)。特别是在主细节场景中,这读起来更好,按名称排列更好,逻辑顺序更高(主细节优先,细节第二):
1.订单2.订单详情
对比:
1.订单详情2.订单
原因4(简单)。把所有这些放在一起,表名、主键、关系、实体类。。。最好只知道一个名称(单数),而不是两个名称(单一类、复数表、单数字段、单数复数主细节…)
顾客客户.CustomerID客户地址公共类客户{…}从客户选择CustomerID=100
一旦你知道你是在和“客户”打交道,你就可以确定你会对所有的数据库交互需求使用同一个词。
原因5。(全球化)。世界越来越小,你可能有一个不同国籍的团队,但不是每个人都以英语为母语。对于非英语母语的程序员来说,想到“存储库”比想到“存储”更容易,或者想到“状态”而不是“状态”。使用单数名称可以减少因拼写错误导致的错误,不必思考“是孩子还是孩子?”,从而节省时间,从而提高生产力。
原因6。(为什么不呢?)。它甚至可以节省你的写作时间,节省你的磁盘空间,甚至让你的电脑键盘更耐用!
选择客户.CustomerName FROM Customer WHERE Customer.CustomerID=100选择Customers.CustomerName FROM Customers WHERE Customers.CustomerID=103
您已保存了3个字母、3个字节和3次额外的键盘点击:)
最后,你可以说出那些用保留名搞乱的名字,比如:
用户>LogiUser、AppUser、SystemUser、CMSUser,。。。
或者使用臭名昭著的方括号[User]
其他回答
实际上,我一直认为使用多个表名是一种流行的习惯。到目前为止,我一直使用复数。
我可以理解单数表名的论点,但对我来说,复数表名更有意义。表名通常描述表包含的内容。在标准化数据库中,每个表都包含特定的数据集。每一行都是一个实体,表中包含许多实体。因此,表名的复数形式。
一张汽车表上会有汽车的名字,每一排都是一辆汽车。我承认,以table.field的方式指定表和字段是最好的做法,使用单一的表名更容易阅读。然而,在以下两个例子中,前者更有意义:
SELECT * FROM cars WHERE color='blue'
SELECT * FROM car WHERE color='blue'
老实说,我将重新思考我在这件事上的立场,我将依赖于我正在开发的组织所使用的实际惯例。然而,我认为出于个人习惯,我将坚持使用复数表名。对我来说,这更有意义。
我认为使用单数是我们在大学里学到的。但同时,您可能会认为,与面向对象编程不同,表不是其记录的实例。
我想我现在倾向于单数,因为英语中的复数不规范。在德语中,由于没有一致的复数形式,情况更糟——有时,如果没有前面的指定冠词(der/die/das),你就无法判断一个单词是否为复数。无论如何,在汉语中没有复数形式。
我也会使用复数形式,对于前面提到的用户困境,我们确实采用了方括号方法。
我们这样做是为了在数据库体系结构和应用程序体系结构之间提供一致性,基本上理解为用户表是用户值的集合,就像代码工件中的用户集合是用户对象的集合一样。
让我们的数据团队和开发人员使用相同的概念语言(尽管不总是相同的对象名称),可以更容易地在他们之间传达想法。
IMHO,表名应该是复数,如Customer。
如果类名称映射到Customers表中的一行,则类名称应与Customer类似。
什么约定要求表具有单数名称?我一直以为是复数。
用户将添加到“用户”表中。
本网站同意:http://vyaskn.tripod.com/object_naming.htm#Tables
本网站不同意(但我不同意):http://justinsomnia.org/writings/naming_conventions.html
正如其他人所提到的:这些只是指导方针。选择一个适合你和你的公司/项目的惯例,并坚持下去。在单数和复数之间切换,或者有时缩写词,有时不缩写词,这会让人更加恼火。