代码之家  ›  专栏  ›  技术社区  ›  user164226

复数和单数形式为奇数或相同时的表和列命名约定

  •  2
  • user164226  · 技术社区  · 16 年前

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

    我需要在数据库中表示一个动物的种类和属等。“物种”的复数形式和单数形式相同,“属”的复数形式是“属”。

    顺便说一下,我正在使用微软的实体数据模型。我主要关心的是,根据我的命名选择,以后是否会有问题。

    我想我可以接受: 表:属列:属

    但我不确定该如何处理: 表:物种列:物种

    如果我真的想懒惰的话,我会把它们命名为“物种”和“真属”,但我更愿意以正确的形式来阅读它们。

    任何建议都将不胜感激。

    2 回复  |  直到 10 年前
        1
  •  4
  •   nico    16 年前

    我会选择属/属和种/种。这就是你用英语说的,那为什么用不正确的单词形式呢?

        2
  •  0
  •   Jay    10 年前

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

    也就是说,如果你遇到这个问题,它向我表明你对其中一个或另一个的名字选择不当。物种作为一个表名很有意义:这个表包含一个物种的数据。所以,如果表中的一个字段被称为“物种”…物种呢?大概桌上所有的东西都是关于一个物种的。我猜这可能是某种标识符,而不是染色体数目或繁殖方法。但这是身份证号码吗?缩写?通用名?二项式命名法?等等,如果它是,比方说,共同的名字,我会叫它“共同的名字”,而不是“物种”。

    顺便说一句,您应该决定的另一个命名约定是,如果从上下文中删除,那么可能不明确的列名是否应该具有指定上下文的名称,或者是否使用表名来消除不明确。例如,您可以拥有许多具有“名称”的东西。你可以简单地称任何一个这样的领域为“名称”,如果有歧义,就限定它,如“物种.名称”、“实验室.名称”等,或者你可以给每个领域一个独特的名称,如“物种名称”、“实验室名称”等。这是我认为没有确切正确答案的问题之一,只是利弊,做出决定并加以考虑。T