数据库命名约定

时间:2013-08-29 16:52:33

标签: sql database

这场辩论已在这里完成,我特别喜欢阅读this thread。但是,我只是想问一个特定的问题,那个线程现在已经关闭了,所以就是这样。

我想知道人们对列名的看法是什么。广泛的共识似乎是将表格的主键命名为格式ID,例如顾客ID。这就是我的工作。

但其他专栏怎么样?我倾向于在每个列名前加上表名,例如: CustomerFirstName,CustomerDOB等。这对我来说很舒服,但似乎并不常见。离开桌子名称困扰我有两个原因。首先,我担心,随着数据库变得非常大,可能会有不同表中的列具有相同的名称,并且可能难以区分它们,尤其是在调试时,其次它困扰我的OCD以获得第一列(主键通常以表名开头,但其他名不是。

是否有任何规范或原则可以帮助您选择最佳命名规则?但另一件事。在我的每个列名称前缀为表名的约定中出现了一个问题 - 外键列。有一个名为CustomerStoreID的列来保存StoreID外键是没有意义的,所以我只称它为StoreID。但是,那是违反惯例的,那么首先证明公约是穷人的证据呢?你如何命名你的外键列?

1 个答案:

答案 0 :(得分:3)

这完全是个人的决定。每个人都试图保留易于识别且易于推断的列名称。

因此,数据库中列的命名约定没有标准。每个人都保留了可以轻松跟踪和理解的列名称。

我只是采用示例: -

假设您有一个名为Employee的表。

在此表中,您必须存储information员工,包括namecontact详细信息。

因此,如果您将列命名为 Emp_First_name Emp_Last_Name Emp_PhoneNo Emp_EmailAdreess 。然后这更具可读性,任何将来使用你的桌子的人都会理解这些专栏而不做任何解释。

  

在每个列名称前加上表名,就会出现问题    - 外键列。

我不这么认为。通常的做法是,如果任何列上都有外键,那么您在该列前加上 FK_XXXXX 。所以任何人都可以跟踪它是一个外键

同样,如果您创建 INDEX ,那么人们通常会添加前缀 IDX_XXXX 来标记这是索引的名称。