为了账号安全,请及时绑定邮箱和手机立即绑定

数据库、表和列命名约定?

数据库、表和列命名约定?

繁星coding 2019-11-07 06:06:22
数据库、表和列命名约定?每当我设计一个数据库时,我总是想知道在我的数据库中是否有最好的命名方法。我经常问自己以下问题:表名应该是复数吗?列名应该是单数吗?我应该在表或列前加上前缀吗?我应该在命名项目时使用任何案例吗?数据库中的项目命名是否有推荐的指导方针?
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

迟答,但简而言之:

  1. 我的

    偏好

    复数
  2. *通常*没有前缀是最好的。

    *没有。
  3. 表和列:PascalCase。

阐述:

(1) 你必须做的事。很少有你每一次都以某种方式去做,但也有一些。

  • 把你的名字命名为

    主键

    使用“[singularOfTableName]ID”格式。也就是说,您的表名是否是

    客户

    客户

    ,主键应该是

    顾客ID.

  • 此外,

    外键一致命名

    在不同的桌子上。殴打不这样做的人应该是合法的。我认为,虽然定义了外键约束,但

    经常

    重要的、一致的外键命名是

    重要
  • 你的数据库一定有

    内部惯例

    ..即使在后面的章节里你会看到我很灵活,

    数据库命名必须非常一致。您的客户表是否被调用

    客户

    客户

    不重要的是,您在同一数据库中以相同的方式执行此操作。你可以抛硬币来决定如何使用下划线,但是

    必须继续以同样的方式使用它们

    ..如果你不这样做,你就是一个应该自卑的坏人。

(2) 你应该怎么做。

  • 字段表示不同表上相同类型的数据。

    同样的名字。在一张桌子上没有Zip,在另一张桌子上没有ZipCode。
  • 若要将表名或列名中的单词分隔开来,请使用Pascalcase。使用CAMELCase并不是本质上的问题,但这不是惯例,而且看起来很有趣。我一会儿再讨论下划线。(你不能像过去那样使用ALLCAPS。OBNOXIOUSTABLE.ANNOYING_CODE 20年前在DB2中是可以的,但现在不行。)
  • 不要人为地缩短或缩短单词。一个名字长而清晰,总比简短和令人困惑好。超短的名字是黑暗,更野蛮的时代的坚持。CuS_AddRef那到底是什么?保管人收信人推荐人?客户额外退款?自定义地址查询?

(3) 你应该考虑什么。

  • 我真的认为你应该为桌子取复数名称;有些人认为单数。阅读其他地方的论点。不过,列名应该是单数。即使使用复数表名,表示其他表组合的表也可能是单数。例如,如果您有一个

    晋升

    和一个

    项目

    表中,表示作为促销活动一部分的项的表可以是Promos_Items,但也可以合法地称为Promotions_Items(反映一对多的关系)。
  • 始终使用下划线,并用于特定目的。只有普通表的名称在Pascalcase中应该足够清楚;您不需要用下划线来分隔单词。保存下划线(A)以表示关联表,或(B)用于前缀,我将在下一个项目中讨论。
  • 前缀不是好的也不是坏的。它

    通常

    不是最好的。在第一个或第二个数据库中,我不建议对表的一般主题分组使用前缀。表最终不太适合您的类别,而且它实际上可以使其满足您的要求。

    更难

    去找桌子。有了经验,你可以计划和应用一个前缀方案,它的好处大于伤害。我曾经在一个数据库中工作过,其中数据表是从

    TBL

    ,配置表

    CTBL

    、观点

    维尤

    、proc‘s

    SP

    ,以及UDF的

    新军

    ,还有其他几个;它是精心的,始终如一地应用,所以它的效果还不错。惟一需要前缀的情况是,当您有真正独立的解决方案时,由于某种原因,这些解决方案驻留在同一个db中;在对表进行分组时,前缀可能非常有用。前缀也适用于特殊情况,比如您想要突出的临时表。
  • 很少(如果有的话)你会想要在列的前缀。



查看完整回答
反对 回复 2019-11-08
  • 3 回答
  • 0 关注
  • 464 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信