命名表以显示与另一个表的关联

时间:2013-10-24 13:48:52

标签: sql sql-server database

我有一个名为Order的表,其中包含客户订单。

我希望人们能够为订单添加备注。什么是命名这张新桌子的最佳方式?因为其他表也可能有注释,例如Customer,我需要将表命名为显示与相关表的关联。关系是一个订单将有0或多个Notes。

我应该这么说:

  1. Order_Note
  2. OrderNote
  3. 他们看起来都很好。我还需要创建另一个表,列出已放置的Order的“类型”。 Order可以包含1种或多种“类型”。那么我如何在表名中命名这个关联?

    1. Order_Type
    2. OrderType
    3. 在此Order_Type表格中,它只有两列OrderIDTypeID。所以我需要一个决赛桌,其中包含可以放置的所有Types订单。我如何命名,因为它会与上表混淆?

      1. Order_Types
      2. OrderTypes
      3. 但这违反了表名中没有复数的规则。

        修改 Order表是一个数据表。 Order_Type是一个加入表。最后,OrderTypes是一个查找表。感谢Hogan让我明白这一点。我还删除了单词之间的连字符作为选项,因为它可能会导致未来的问题。

        解决方案1:

        1. 使用下划线表格之间的名称关联,例如ORDER_TYPE
        2. 没有下划线的名称查找和数据表,例如订单,OrderType
        3. 我还将使用一个模式,以便查找表显示像Lookup.OrderType,这有助于澄清什么是。

1 个答案:

答案 0 :(得分:1)

我已经完成的方式列在下面

  

作为旁注,这些建议与如何思考有关   加入表名,如果你使用驼峰案例或者无关紧要   不是,强调与否等等。

     

这里重要的一点是,基本上存在差异   连接表,查找表和数据表之间。名字   应该反映这一点并保持一致。

1)

我会做一个笔记表并称之为Note。然后我会在订单和备注之间添加一个关系,并将其命名为order2note或orderNote或orderNoteRel

此表名按某种顺序定义了两个连接表,有时您可以将非FK放在第一位,但在很多情况下最好只是默认为按字母顺序排列。

2)

对于定义代码的表(或者你输入的类型),我将制定一个结束" Type"的约定。或"代码"或者" CD"表名中的等等。

所以orderType或orderCD或orderCode将用于定义订单类型的表。

3)

最终表实际上是订单表和orderType表之间的连接,因此它将是

order2orderType或orderOrderCD或orderOrderCodeRel

(或我已经展示的其他约定的其他组合。)

这是重要的一个。如果你还记得你要加入的表应该在其名称中有订单(它是orderType表)那么订单和订单类型之间的连接应该在其名称中有两次订单。虽然一旦你习惯它,这似乎是多余的,但这是完全有道理的。