关于visual studio:数据库表命名,复数或单数

Database tables naming, plural or singular

本问题已经有最佳答案,请猛点这里访问。

在命名数据库的表和模式时,最好使用单数或复数。例如。应该是客户还是客户?

在命名时,它应该是资本,如客户还是客户?有关于命名的最佳实践吗?


这个问题需要一场宗教战争。

我毫不怀疑它应该是复数,因为…

  • 表是行的集合。
  • SQL语法变得更自然了——SELECT * FROM Customers,而不是SELECT * FROM Customer
  • 与OOP类似——你有一个类Customer和一个名为Customers的客户列表或其他集合。
  • SELECT * FROM Customers AS Customer WHERE Customer.FirstName = 'John'Customers表示整张表,Customer表示当前行。

消极的事情

在发展过程中,人们必须多次在单数和复数之间转换。您可以从概念模型(例如实体关系模型)开始,其中自然选择命名实体Customer。从这个模型中,您生成一个数据库,并且必须将名称复数化才能得到Customers表。最后,选择您最喜欢的O/R映射器,它必须再次将名称奇异化,才能得到一个名为Customer的类。

如果您必须手动执行此操作,因为该工具缺乏支持(例如.NET 4.0之前的EntityFramework),那么保持表名的唯一性可能是一个合理的选择,但在不手动更改它的情况下,可以先获取一个类Customer而不是Customers


单一命名。

这都是关于元组的,而不是表的,一个元组是一个客户,而不是客户。另外,我更喜欢在较低的情况下命名,但这是没有原因的,我只是在学校里学的。

最后,正如其他人所说,这更多的是一个偏好问题。如果使用复数或单数,比选择更重要的是要保持一致,并且对所有表都采用相同的方式——如果将pluar和单数命名混合起来,那就真是一团糟。


这在很大程度上是一个偏好问题


您选择的是recipe.ingredient还是recipes.ingredient

…还是从recipes中选择ingredient,而不是从recipe中选择ingredient

您选择的是recipe.ingredient列表还是recipes.ingredient列表?

…还是从recipes中选择ingredient列表,而不是从recipe中选择ingredient列表?

我认为一致性比公约本身更重要。就我个人而言,我更喜欢单一的、小写的表名,但我不会极力捍卫这种选择。


我的选择是单一和标题:)

客户是一个实体。表是多个实体的逻辑集合。所以复数是首选。

对于表名,pascal case更好。即客户经理。

最好使用前缀,如tblcustomermmaster。

如果您使用组名作为前缀,则使用大写字母,例如,新客户、老客户