一尘不染

表命名困境:单数与复数名称

sql

学术界认为表名应该是它们存储属性的实体的单数。

我不喜欢任何需要在名称周围加上方括号的 T-SQL,但我已将一个Users表重命名为单数,永远判刑那些使用该表的人有时必须使用方括号。

我的直觉是保持单数更正确,但我的直觉也是括号表示不受欢迎的内容,例如列名中带有空格等。

我是该留下还是该离开?


阅读 213

收藏
2022-02-21

共1个答案

一尘不染

我有同样的问题,在阅读了这里的所有答案后,我肯定会选择 SINGULAR,原因:

(方便)。使用单数名称比使用复数名称更容易出现。对象可以有不规则复数或根本不复数,但总是有一个单数(除了少数例外,如新闻)。

  • 顾客
  • 命令
  • 用户
  • 状态
  • 消息

原因 3。(审美和秩序)。特别是在 master-detail 场景中,这读起来更好,按名称对齐更好,并且有更多的逻辑顺序(Master first,Detail second):

  • 1.订购
  • 2.订单详情

相比:

  • 1.订单详情
  • 2.订单

原因 4(简单)。总而言之,表名称、主键、关系、实体类......最好只知道一个名称(单数)而不是两个(单数类、复数表、单数字段、单数-复数主-详细信息.. .)

  • Customer
  • Customer.CustomerID
  • CustomerAddress
  • public Class Customer {...}
  • SELECT FROM Customer WHERE CustomerID = 100

一旦您知道您正在与“客户”打交道,您就可以确定您将使用同一个词来满足您所有的数据库交互需求。

原因 5。(全球化)。世界越来越小,你可能有一个不同国籍的团队,并不是每个人都以英语为母语。对于非英语母语的程序员来说,想到“Repository”比想到“Repositories”或者“Status”而不是“Statuses”会更容易。使用单数名称可以减少由拼写错误引起的错误,不必考虑“是孩子还是孩子?”从而节省时间,从而提高生产力。

原因 6。(为什么不?)。它甚至可以节省您的书写时间,节省您的磁盘空间,甚至让您的电脑键盘更耐用!

  • SELECT Customer.CustomerName FROM Customer WHERE Customer.CustomerID = 100
  • SELECT Customers.CustomerName FROM Customers WHERE Customers.CustomerID = 103

你已经保存了 3 个字母、3 个字节、3 个额外的键盘点击 :)

最后,您可以将那些与保留名称混淆的名称命名为:

  • 用户 > 登录用户、应用用户、系统用户、CMSUser、…

或者使用臭名昭著的方括号 [User]

2022-02-21