多变量依赖表MySQL的命名约定

时间:2013-06-16 03:42:35

标签: mysql database-design naming-conventions relational-database normalization

规范化数据库的约定规定,处理多变量依赖关系的最佳实践是将它们分成两列的自己的表。一列是原始表的主键(例如,客户名称,其中有一个),而另一列是具有多个值的值(例如,电子邮件或电话 - 客户可以拥有其中的多个) 。这两列共同构成了分离表的主键。

但是,在构建规范化数据库时,我经常会发现将这些分离出的表命名为麻烦。很难为这些表格提供有意义的名称。是否存在将这些表标识为多变量依赖表的标准方法,如果没有其他表的存在则这些表无意义?我能想到的一些例子(参考上面的例子)是'customer_phones'或'customer_has_phones'。我不认为只是'手机'会很好,因为这并不能将此表视为与客户表相关并严重依赖客户表。

2 个答案:

答案 0 :(得分:1)

在现实生活中,你最终会遇到很多彼此变化很大的组合。

尝试尽可能清楚,以防其他人最终继承您的设计。我个人喜欢在父表中保留短名称,这样当关系增长或跨越新的孩子时,他们不会超长。

例如,如果我有“客户”,“订阅”,“产品”表,我最终会命名他们的链接,如“Customer_Subscriptions”或“Subscriptions_Products”等。

在可维护性方面,大多数时候它只是为了更好地发挥作用。

答案 1 :(得分:1)

我们使用的约定是实体表的名称,后跟属性的名称。

在您的示例中,如果实体表为customer,则重复(多值)属性的表名称为customer_phonecustomer_phone_number。 (我们几乎总是以单数形式命名表格,基于我们命名一个元组(行)所代表的含义。(例如,该表中的一行代表客户的一次电话号码。)