【问题标题】:Table and column naming conventions when plural and singular forms are odd or the same复数和单数形式奇数或相同时的表和列命名约定
【发布时间】:2010-05-15 21:08:57
【问题描述】:

在我的搜索中,我发现了是否 在数据库命名约定中使用复数的主要参数,以及在任何一种情况下处理它的方法。我已经决定我更喜欢复数表名,所以我不想争论。

我需要在数据库中表示动物的物种和属等。 'species'的复数形式和单数形式相同,'genus'的复数形式是'genera'。

顺便说一下,我正在使用 Microsoft 的实体数据模型。我关心的主要是我以后会不会有问题取决于我的命名选择。

我想我可以通过: 表:属 |栏目:属

但我不确定我应该如何处理: 表:物种 |栏目:物种

如果我真的想对此感到懒惰,我只会将它们命名为“species > specie”和“genuses > genus”,但我更愿意以正确的形式阅读它们。

任何建议将不胜感激。

【问题讨论】:

    标签: database naming-conventions ado.net-entity-data-model


    【解决方案1】:

    我会选择 Genera/Genus 和 Species/Species。英文就是这样说的,为什么要使用不正确的单词形式呢?

    【讨论】:

    • 所以当列名和表名相同时,我以后不会在代码中遇到冲突吗?也许我应该提到我正在使用 Microsoft Entity Data Model;它的代码生成引起了我对此的担忧。
    • @Superstringcheese:我的数据库中的列与表同名,从来没有遇到过问题。但是我从未使用过 MS 实体数据模型,所以我不确定在您的具体情况下这是否会成为问题,抱歉。
    【解决方案2】:

    我通常避免使用与表名相同的列名,因为这会使人类读者感到困惑。数据库引擎知道在任何给定的上下文中它是否需要一个表名或列名,我不记得这是一个问题。 (有没有任何一个有效的上下文?我想不出一个。)

    也就是说,如果您遇到此问题,这表明您为其中一个或另一个选择了一个错误的名称。 Species 作为表名很有意义:该表包含有关物种的数据。因此,如果该表中的一个字段被称为“物种”……那么物种呢?大概表中的所有内容都与一个物种有关。我猜这可能是某种标识符,而不是染色体数量或繁殖方法。但它是一个身份证号码吗?缩写?通用名?二项式命名法名称?等等。如果它是通用名称,我会称之为“common_name”而不是“species”。

    顺便说一句,您应该决定的另一个命名约定是,如果脱离上下文可能会产生歧义的列名是否应该具有指定上下文的名称,或者是否使用表名来消除歧义。例如,您可以拥有许多具有“名称”的事物。您可以将任何此类字段简称为“名称”,如果有歧义,请对其进行限定,例如“species.name”、“laboratory.name”等。或者您可以为每个字段指定一个唯一名称,例如“species_name”、“实验室名称”等。这是我认为没有明确正确答案的问题之一,只有利弊,然后做出决定并保持一致。

    【讨论】:

      猜你喜欢
      • 2014-11-13
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多