1

请参阅我为帮助可视化我的问题而制作的以下示例数据库模型:

在此处输入图像描述

在这个例子中, 之间的关系car and history is 1 to zero or more和 之间的关系car and options is 1 to zero or more

两个表都 car car_id作为外键,但 Visio 还希望customer 每个表的主键作为外键,如上图所示。我不确定这是否必要/正确。如果我删除添加的外键,visio 会将关系标记为不可识别(虚线),所以我觉得好像我做错了什么

谁能告诉我为什么 Visio 将添加customer cust_id到子表car?在这种情况下,手动删除外键是否是个坏主意?

根据评论(和选择的答案)更新图表

在此处输入图像描述

4

1 回答 1

1

非识别关系本身没有任何“错误”。

car_id独一无二,还是在上下文中cust_id(所以我们可以car_id对不同cust_id的 s 有相同的)?

  • 如果它本身是唯一的,则customer-car关系应该是不可识别的。
  • 否则它应该被识别。这样做的一个自然结果是传播cust_id到所有“下游”实体。

顺便说一句,同样的问题可能会被问到opt_id-hist_id它们本身是独一无二的还是在carPK 的背景下是独一无二的?答案决定了关系是否应该被识别caroptionscarhistory

于 2012-04-20T14:41:44.733 回答