我在交叉引用表上有一对多的表,然后在另一个表上多对一。然后该表在另一个表上有一对多,然后在该表之间有一对一。
所以想想这样:
人物 - > crossref< - 犬种 - >许多不同的狗 - >狗名
我想要关联的是Person - >狗名,每人不得复制相同的狗名。
就像这个人使用多少个不同的狗名一样。而且我不想使用distinct,因为它很慢。我希望查询是即时或接近即时的。显而易见的选择是使用人和狗名称之间的交叉引用来更改数据模型,但是假设这不是一个选项。所有表都有索引ID,如Person.id等。
答案 0 :(得分:0)
您的ERD不正确。相反,它应如下所示:
Person <1:M> dog <1:1 or 1:M> dog breed
一个人拥有一只或多只狗。一只狗是单一品种(好吧,如果你考虑混合的蛀虫,我想你可以做到一对多)。通过这种设计,您可以轻松地回答哪个人拥有狗和各种品种。在你的设计中,人与品种之间没有天然的关系。