学术界认为,表名应该是存储其属性的实体的单数。
我不喜欢任何需要在名称周围加方括号的T-SQL,但我已经将一个Users表重命名为单数,这永远意味着使用该表的人有时不得不使用括号。
我的直觉是,保持单数更正确,但我的直觉也是,括号表示不需要的东西,比如列名中有空格等。
我该留下还是该走?
学术界认为,表名应该是存储其属性的实体的单数。
我不喜欢任何需要在名称周围加方括号的T-SQL,但我已经将一个Users表重命名为单数,这永远意味着使用该表的人有时不得不使用括号。
我的直觉是,保持单数更正确,但我的直觉也是,括号表示不需要的东西,比如列名中有空格等。
我该留下还是该走?
当前回答
我坚持表名和任何编程实体使用单数。
原因是什么?事实上,英语中有不规则的复数形式,如mouse⇒ 老鼠和绵羊⇒ 羊然后,如果我需要收集,我只需要使用老鼠或绵羊,然后继续。
这确实有助于多元性脱颖而出,而且我可以通过编程轻松地确定这些东西的集合是什么样子的。
所以,我的规则是:所有事物都是单数,所有事物的集合都是单数的,并加上s。也有助于ORM。
其他回答
就“标准”而言,其他人给出了相当好的答案,但我只是想补充一下。。。是否可能“用户”(或“用户”)实际上不是表中数据的完整描述?并不是说你应该对表名和特定性太着迷,但也许像“Widget_Users”(其中“Widget”是应用程序或网站的名称)这样的东西会更合适。
如果您使用Zend Framework(PHP)等特定框架,那么明智的做法是表类使用复数,行类使用单数。
因此,假设您创建了一个表对象$users=newUsers(),并将行类声明为User,那么您也可以调用newUser()。
现在,如果对表名使用单数,则必须执行类似于newUserTable()的操作,其中的行是newUserRow()。对我来说,这看起来比为表设置对象Users()和为行设置User()对象更笨拙。
我总是使用单一的表名,但正如前面所述,最重要的是保持一致,并对所有名称使用相同的形式。
我不喜欢多个表名,因为组合的名称可能会很奇怪。例如,如果您有一个名为Users的表,并且您想存储用户的财产,那么这将导致一个名称为UsersProperties的表。。。
两个网站都有不同的论文,我认为你只需要选择你的一方。就我个人而言,我更喜欢Plular来命名表,当然,单数来命名列。
我喜欢你怎么读这个:
SELECT CustomerName FROM Customers WHERE CustomerID = 100;
的确,我们有OOP,这很好,但大多数人仍然使用关系数据库,而不是对象数据库。关系数据库不需要遵循OOP概念。
另一个例子是,您有一个表Teams,它保存了TeamID、TeamColor和PlayerID,并且对于一定数量的PlayerID将具有相同的TeamID和TeamColor。。。
该球员属于哪支球队?
SELECT * FROM Teams WHERE PlayerID = X
X队的所有球员?
SELECT * FROM Players INNER JOIN Teams ON Players.PlayerID = Teams.PlayerID WHERE Teams.TeamID = X
你觉得这一切都好吗?
无论如何,还可以看看W3Schools使用的命名约定:
http://www.w3schools.com/sql/sql_join_inner.asp
我总是使用单数,因为这就是我所学到的。然而,在最近创建一个新的模式时,这是很长一段时间以来的第一次,我积极地决定保持这种惯例,因为。。。它更短。对我来说,在每个表名的末尾添加“s”和在每个表的前面添加“tbl_”一样无用。