我在我的 SQL 数据库中设计实体到实体关系时遇到问题。我有一个充当“组”的实体。并且所有的组都相互之间有关系。
例如:GroupA 和 GroupB 具有从 groupA 到 groupB 的关系,反之亦然,具有布尔值。它就像一个二维矩阵:
姓名 | 甲组 | B组 |
A组 | 真实 | 错误的
B组 | 假 | 真实 |
这些组是动态的,可能有更多或更少的组。现在,我应该如何将它存储在我的数据库中?
对不起我的英语不好,我希望有人明白我的意思:)
你需要两张表:
GROUP
Name
...
GROUPTOGROUP
BaseGroupID
ConnectedToGroupID
True/False
因此,您可以在 GroupToGroup 中定义任何连接。
Groups
带有一些Id
列的表。GroupConnections
带有Group1Id
和Group2Id
列的表,以及Group1Id <> Group2Id
的unique Group1Id, Group2Id
约束和外键Groups
。
如果有连接(true
在您的矩阵中),则应该在GroupConnections
. 如果没有,就不应该。