【发布时间】:2011-03-16 07:28:47
【问题描述】:
在命名数据库的表和架构时,最好使用单数或复数。 例如。应该是客户还是客户?
在命名时应该是资本,例如客户还是客户?关于命名的任何最佳做法?
【问题讨论】:
-
被Table Naming Dilemma: Singular vs. Plural Names复制了,但是那个得到了更多的关注。
在命名数据库的表和架构时,最好使用单数或复数。 例如。应该是客户还是客户?
在命名时应该是资本,例如客户还是客户?关于命名的任何最佳做法?
【问题讨论】:
这个问题需要一场宗教战争。
我毫不怀疑它应该是复数,因为...
SELECT * FROM Customers 而不是 SELECT * FROM Customer。Customer 和一个名为 Customers 的客户列表或其他集合。SELECT * FROM Customers AS Customer WHERE Customer.FirstName = 'John' - Customers 指的是整个表,而Customer 指的是当前行。负面的东西
在开发过程中,必须多次在单数和复数之间切换。您可以从概念模型开始——例如实体关系模型——自然选择将实体命名为Customer。从这个模型中,您生成一个数据库,并且必须将名称复数才能获得Customers 表。最后,您选择了您最喜欢的 O/R 映射器,它必须再次将名称单数化以获得名为 Customer 的类。
如果您必须手动执行此操作,因为该工具缺乏支持(例如 .NET 4.0 之前的 EntityFramework),保持表名单一但因此获得一个类 Customer 而不是 @987654332 可能是一个合理的选择@ 无需手动更改。
【讨论】:
单数命名。
这都是关于元组,而不是表,元组是一个客户,而不是客户。我也喜欢用小写命名,但那是没有原因的,我只是在学校里学的。
最后,正如其他人所说,这更像是一个偏好问题。比选择使用复数还是单数更重要的是保持一致并为所有表格使用相同的方式 - 如果混合使用复数和单数命名,那真是一团糟。
【讨论】:
这几乎是一个偏好问题
【讨论】:
您选择recipe.ingredient 还是recipes.ingredient?
...或者您是从recipes 中选择ingredient,而不是从recipe 中选择ingredient。
您选择recipe.ingredient 列表还是recipes.ingredient 列表?
...还是从recipes 中选择ingredient 列表,而不是从recipe 中选择ingredient 列表?
我认为一致性比约定本身更重要。就个人而言,我更喜欢单数、小写的表名,但我不会强烈反对这种选择。
【讨论】:
我的选择是 Singular 和 TitleCase :)
客户是一个实体。表是多个实体的逻辑集合。所以首选复数。
对于表名,pascal 大小写更好。即 CustomerMaster。
最好使用前缀,例如 tblCustomerMaster。
如果您使用组名作为前缀,请使用大写字母,例如, 新客户,旧客户
【讨论】: