0

我有一张桌子“人”(ID,姓名)

1, George
2, Nick
3, John
4, Paul

每个客户都可以连接到另一个客户(仅供参考)例如 George 与 Paul 连接

所以我创建了一个新表 PeopleConnections (PeopleConnectID, PeopleID, ConnectedID)

我添加了人与人之间的关系

1, 1, 4 (George with Paul)
1, 2, 3 (Nick with John)
1, 2, 4 (Nick with Paul)

我需要在记录视图 gui 中显示所有关系。所以

  • 尼克必须展示:John, Paul
  • 保罗必须展示:George, Nick
  • 约翰必须展示:Nick

这是处理这个问题的正确设计吗?我应该添加哪些外键?

4

2 回答 2

1

在我看来,这是一种many-to-many关系,也是一种正确的设计。你的外键应该是你IDPeople表。你已经在那部分回答了自己。

于 2013-05-14T19:24:16.767 回答
0

是的,您的设计通常是合适的。您应该在 PeopleConnections.PeopleID 和 PeopleConnections.ConnectedID 上放置外键约束。这两个都应该引用 People.PeopleID。

您可能还希望对 PeopleConnections.PeopleID 和 PeopleConnections.ConnectedID 的聚合放置唯一约束,以防止重复关系。

于 2013-05-14T19:24:34.080 回答