数据库表命名,复数或单数

Jas*_*lad 15 database visual-studio

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

当命名应该是资本,如客户或客户?关于命名的任何最佳实践?

Dan*_*ner 21

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

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

  • 表是行的集合.
  • 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手动更改它.

  • 你的第一段+1,即使你的意见是错的:) (9认同)
  • 我使用了单数命名,但在切换到复数是标准的轨道后,复数命名感觉更自然.对于查询尤其如此 (2认同)

oez*_*ezi 7

单数命名.

这完全是关于元组,而不是表格,元组是一个客户,而不是客户.我也更喜欢在较小的情况下命名,但那是无缘无故的,我只是在学校里学到它.

最后,正如其他人所说,这更多是一种偏好问题.比选择更重要的是如果使用复数或单数是为了保持一致并且对所有表格以相同的方式执行 - 如果你混合了羽毛和单数命名,那真是一团糟.


Fla*_*yqi 6

这几乎是一个偏好问题


Mik*_*ike 5

您选择 arecipe.ingredient还是 a recipes.ingredient

...或者您选择ingredientfromrecipes而不是ingredientfrom recipe

你选择一个recipe.ingredient列表,还是一个recipes.ingredient列表?

...或者您选择一个ingredient列表recipes而不是一个ingredient列表recipe

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