我有一个非常具体的数据库。该数据库包含4个表。
我有一个组件表。该组件表将始终具有系统。 系统可能有多个子系统。 每个子系统可以有多个部分。
这意味着为了拥有一个零件,我必须拥有一个子系统并且拥有该子系统我必须拥有一个系统。
一部分始终与一个子系统相关,该子系统将始终只与一个系统相关。
问题来自组件......因为必须有一个系统,而不是一个子系统,因此不是它的一部分。
如果我在零件和组件之间创建关系,我将能够知道哪个子系统以及关系中的系统。但是当我只有一个系统时会发生什么?这样我就无法检索系统。
我的想法是将子系统和系统直接与组件联系起来。在组件上总共有3个关系。但是这样,如果我有一个部分,那么子系统和组件之间的关系将包含已经存在于部件 - 组件关系中的信息。与系统组件关系相同。
如何删除重复的信息?
修改
为了便于阅读,我将复制@duffymo所做的摘要,但只进行一次更正:
答案 0 :(得分:1)
回到实体关系的开头。
我读到了这个:
导致问题的是最后两个中的“可能有”。
如果您的系统是单个部件,则会出现问题:没有系统或子系统干预。
可能是你通过使组件部分多对多来规避问题。我没有看到系统和子系统之间的区别。我只有系统。