我的 ERD 中有类似的东西。
请注意,可以有两个房间通过一扇以上的门相连。在表格中翻译这一点,我得到每对夫妇的门房重复两次(一次作为入口,另一次作为出口)。所以我像 [this] 这样简化了我的 ERD 模式
其中 room1 和 room2 是外键。
在讲座期间,我们从未见过“孤立的”(没有关系)实体,但在 Stack Overflow 上浏览时,我看到有人说这是可能且正确的。
我上面的解决方案正确吗?
我的 ERD 中有类似的东西。
请注意,可以有两个房间通过一扇以上的门相连。在表格中翻译这一点,我得到每对夫妇的门房重复两次(一次作为入口,另一次作为出口)。所以我像 [this] 这样简化了我的 ERD 模式
其中 room1 和 room2 是外键。
在讲座期间,我们从未见过“孤立的”(没有关系)实体,但在 Stack Overflow 上浏览时,我看到有人说这是可能且正确的。
我上面的解决方案正确吗?
是的,图表中可以有孤立的实体。
但是您更正的图表是不完整的:它给人的印象是实体是孤立的,而它们不是;门和房间是相关的,关系应该出现。
如果你纠正这个关系,你会得到类似于第一张图的东西,但是你会得到and而不是IN
and 。OUT
BETWEEN 1
BETWEEN 2
然后您会立即注意到您的设计并不完全等同于原始设计:原始设计允许表示单向门。这听起来很奇怪,但如果你走进大型办公楼,你会看到例如:
由于单向设计,原始设计需要许多重复门(这有助于图探索算法)。您仍然可以通过添加两个属性或一个可能具有三个值的属性(从 1 到 2 单向、从 2 到 1 单向或双向,编码留作练习)来实现相同from_1_to_2
的from_2_to_1
表现direction
力。
如果需要记录有关门的其他信息(例如材料、锁的类型、耐火性、自动关闭与否、序列号等),此修改后的设计将优于原始设计,因为它可以防止冗余,并有助于规范化。 ..)。