学术界认为,表名应该是存储其属性的实体的单数。
我不喜欢任何需要在名称周围加方括号的T-SQL,但我已经将一个Users表重命名为单数,这永远意味着使用该表的人有时不得不使用括号。
我的直觉是,保持单数更正确,但我的直觉也是,括号表示不需要的东西,比如列名中有空格等。
我该留下还是该走?
学术界认为,表名应该是存储其属性的实体的单数。
我不喜欢任何需要在名称周围加方括号的T-SQL,但我已经将一个Users表重命名为单数,这永远意味着使用该表的人有时不得不使用括号。
我的直觉是,保持单数更正确,但我的直觉也是,括号表示不需要的东西,比如列名中有空格等。
我该留下还是该走?
当前回答
我个人更喜欢用复数来表示一个集合,这对我的关系思维来说“听起来”更好。
此时此刻,我正使用单数名称为我的公司定义一个数据模型,因为大多数工作人员都觉得它更舒服。有时候,你只需要让每个人的生活更轻松,而不是强加你的个人喜好。(这就是我在本主题中的结尾,以确认什么是命名表的“最佳实践”)
在阅读了这篇文章中的所有争论之后,我得出了一个结论:
不管每个人最喜欢的口味是什么,我都喜欢我的蜂蜜煎饼。但如果我为其他人做饭,我会尝试为他们提供他们喜欢的东西。
其他回答
什么约定要求表具有单数名称?我一直以为是复数。
用户将添加到“用户”表中。
本网站同意:http://vyaskn.tripod.com/object_naming.htm#Tables
本网站不同意(但我不同意):http://justinsomnia.org/writings/naming_conventions.html
正如其他人所提到的:这些只是指导方针。选择一个适合你和你的公司/项目的惯例,并坚持下去。在单数和复数之间切换,或者有时缩写词,有时不缩写词,这会让人更加恼火。
我们运行类似的标准,在编写脚本时,我们要求[]围绕名称,并在适当的情况下使用模式限定符-主要是为了防止SQL语法将来夺取名称。
SELECT [Name] FROM [dbo].[Customer] WHERE [Location] = 'WA'
这在过去拯救了我们的灵魂——我们的一些数据库系统从SQL 6.0到SQL 2005已经运行了10多年——远远超过了预期寿命。
就“标准”而言,其他人给出了相当好的答案,但我只是想补充一下。。。是否可能“用户”(或“用户”)实际上不是表中数据的完整描述?并不是说你应该对表名和特定性太着迷,但也许像“Widget_Users”(其中“Widget”是应用程序或网站的名称)这样的东西会更合适。
我坚信,在实体关系图中,实体应该用一个单数名称来反映,类似于类名是单数。实例化后,名称将反映其实例。因此,对于数据库,当实体被制成表(实体或记录的集合)时,它是复数。实体,用户被制成表用户。我同意其他人的建议,也许User这个名字可以改为Employee,或者更适合您的场景。
这在SQL语句中更有意义,因为您正在从一组记录中进行选择,如果表名是单数,则读起来不好。
我认为使用单数是我们在大学里学到的。但同时,您可能会认为,与面向对象编程不同,表不是其记录的实例。
我想我现在倾向于单数,因为英语中的复数不规范。在德语中,由于没有一致的复数形式,情况更糟——有时,如果没有前面的指定冠词(der/die/das),你就无法判断一个单词是否为复数。无论如何,在汉语中没有复数形式。