数据库、表和列命名约定?每当我设计一个数据库时,我总是想知道在我的数据库中是否有最好的命名方法。我经常问自己以下问题:表名应该是复数吗?列名应该是单数吗?我应该在表或列前加上前缀吗?我应该在命名项目时使用任何案例吗?数据库中的项目命名是否有推荐的指导方针?
3 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
我的 偏好
复数 是 表
*通常*没有前缀是最好的。 柱
*没有。 表和列: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中;在对表进行分组时,前缀可能非常有用。前缀也适用于特殊情况,比如您想要突出的临时表。 很少(如果有的话)你会想要在列的前缀。
添加回答
举报
0/150
提交
取消