1

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

但是,在构建规范化数据库时,我经常发现命名这些衍生表很麻烦。很难为这些表想出一个有意义的名称。是否有一种标准方法可以将这些表标识为多变量依赖表,如果没有其他表的存在,这些表就毫无意义?我能想到的一些例子(参考上面的例子)是“customer_phones”或“customer_has_phones”。我不认为只有“电话”会很好,因为这并不能确定此表与客户表相关并严重依赖于客户表。

4

2 回答 2

1

在现实生活中,您最终会遇到很多彼此不同的组合。

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

例如,如果我有“Customer”、“Subscriptions”、“Product”表,我最终会将它们的链接命名为“Customer_Subscriptions”或“Subscriptions_Products”等。

大多数时候,它只是归结为在可维护性方面对您更有效的方法。

于 2013-06-16T03:56:36.977 回答
1

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

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

于 2013-06-16T05:30:29.690 回答