【问题标题】:Database tables naming, plural or singular [duplicate]数据库表命名,复数或单数[重复]
【发布时间】:2011-03-16 07:28:47
【问题描述】:

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

在命名时应该是资本,例如客户还是客户?关于命名的任何最佳做法?

【问题讨论】:

标签: database visual-studio


【解决方案1】:

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

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

  • 表是行的集合。
  • 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 而不是 @987654332 可能是一个合理的选择@ 无需手动更改。

【讨论】:

  • +1 为您的第一段,即使您的意见是错误的 :)
  • 我使用单数命名,但在切换到以复数为标准的 Rails 后,复数命名感觉更自然。对于查询尤其如此
  • 这似乎更自然,但我在想它是否对以后的开发等有任何负面影响......
【解决方案2】:

单数命名。

这都是关于元组,而不是表,元组是一个客户,而不是客户。我也喜欢用小写命名,但那是没有原因的,我只是在学校里学的。

最后,正如其他人所说,这更像是一个偏好问题。比选择使用复数还是单数更重要的是保持一致并为所有表格使用相同的方式 - 如果混合使用复数和单数命名,那真是一团糟。

【讨论】:

    【解决方案3】:

    这几乎是一个偏好问题

    【讨论】:

      【解决方案4】:

      您选择recipe.ingredient 还是recipes.ingredient

      ...或者您是从recipes 中选择ingredient,而不是从recipe 中选择ingredient

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

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

      我认为一致性比约定本身更重要。就个人而言,我更喜欢单数、小写的表名,但我不会强烈反对这种选择。

      【讨论】:

        【解决方案5】:

        我的选择是 Singular 和 TitleCase :)

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

        对于表名,pascal 大小写更好。即 CustomerMaster。

        最好使用前缀,例如 tblCustomerMaster。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-08-24
          • 1970-01-01
          • 2010-10-22
          • 1970-01-01
          • 2021-12-19
          • 2017-10-04
          • 2012-09-11
          • 1970-01-01
          相关资源
          最近更新 更多