0

我的表在交叉引用表上是一对多的,然后在另一个表上是多对一的。然后该表在另一张表上有一对多,然后在该表之间有一对一。

所以这样想:

人-> crossref <- 狗品种-> 许多不同的狗-> 狗名

我要关联的是人-> 狗名,每个人都没有重复相同的狗名。

就像这个人使用了多少不同的狗名一样。而且我不想使用 distinct 因为它很慢。我希望查询是即时的或接近即时的。显而易见的选择是使用人名和狗名之间的交叉引用来更改数据模型,但让我们假装这不是一个选项。所有表都有索引 ID,例如 Person.id 等。

4

1 回答 1

0

您的 ERD 不正确。相反,它应该如下所示:

Person <1:M> dog <1:1 or 1:M> dog breed

一个人拥有一只或多只狗。一只狗是单一品种的(好吧,如果您考虑混合品种,我想您可以将其设为一对多)。从这个设计中,您可以轻松地回答哪个人拥有什么狗和各种品种。在您上面的设计中,人和品种之间没有自然的关系。

于 2013-02-20T15:35:21.270 回答