• SQL表名,应该用表对应资源对象的复数形式还是单数形式


    问题
    SQL表名,应该用表对应资源对象的复数形式还是单数形式。例如一个用户表,表名是用user还是users更合适呢?
     

    精华回答
     
    用单数形式更佳,理由如下:
     
    1、概念直观。
    你有一个袋子,里面有好多个苹果,你会说这是个苹果袋。但无论里面有0,1,百万个苹果,它依然是个袋子。表也是如此,表明需要描述清楚,表里面包含的对象,而非有多少个数据。
     
    2、便利性
    单数形式更简单。有一些单词,它的复数形式可能是非常规的,或者就没有复数形式,但是单数不一样,单数形式则没那么多讲究。有些单词的复数,可能会想到你头大,可能得好好google才出来
     
    3、优雅
    特别是一些master-detail形式的资源名称,统一用单数,读起来更方便,对齐更整齐,从顺序上更有逻辑性。
    对比下
    单数:
    • Order
    • OrderDetail
    复数:
    • OrderDetails
    • Orders
     
    4、简单朴素
    设想下,不管是表名,主键,关系,实例Classes,你都可以统一用单数,所有看上去那么统一,也不用费心地各种复数单数中转换你的思维
    • Customer
    • Customer.CustomerID
    • CustomerAddress
    • public Class Customer {...}
    • SELECT FROM Customer WHERE CustomerID = 100
    一旦你确定,要处理的这个对象,名字定为Customer,那么所有和数据库相关的交互、编程就都将使用这个单词
     
    5、全球化
    假设你身处一个全球化的团队,成员中有些人,母语不是英文,对他们来说,辨认、书写一个单词的复数形式,要更困难,会给他们带来麻烦,也给团队合作带来麻烦。
     
    6、为什么不
    这可以节省你的拼写时间,硬盘空间,甚至让你的键盘更“长寿”
    • SELECT Customer.CustomerName FROM Customer WHERE Customer.CustomerID = 100
    • SELECT Customers.CustomerName FROM Customers WHERE Customers.CustomerID = 100
    看这两条语句,你可以省下3个字母,3个字节,3次键盘敲击
     
    最后,我还认为,你应该给一些容易冲突的名字加个前缀,例如User,要把对应的前缀加上,也就是
    User > LoginUser, AppUser, SystemUser, CMSUser,...
     
    stackoverflow链接:
    http://stackoverflow.com/questions/338156/table-naming-dilemma-singular-vs-plural-names
     
     
    专栏介绍:
    非常喜欢stackoverflow,总能在上面找到疑难杂症的解决办法。偶然发现该网站有一个热度榜单。于是精选了热度较高的一些问题,然后按照自己的理解,把大家的讨论梳理出来。因此,这些文章不是真正的翻译,而是按照自己的理解做了一些增删、润色,希望能把上面的讨论,更精简有效地分享给大家。
    如需转载,请注明原文地址
     
  • 相关阅读:
    IDEA常用快捷键
    js读取Excel文件
    tensorBoard展示图片出错分析TensorBoard can’t find your event files.
    在乌班图系统中使用conda报错:from conda.cli import main ModuleNotFoundError: No module named 'conda'
    Event loop is closed 纪宇
    vue supermall蘑菇街API后端接口
    解决Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location问题
    Linux运行jar包的几种方式
    Linux下根据关键字搜索最后一条日志
    Linux命令之tcpdump
  • 原文地址:https://www.cnblogs.com/RyanJin/p/10563070.html
Copyright © 2020-2023  润新知