数据库依赖于同一个表的表之间的关系

时间:2016-07-15 14:36:27

标签: mysql database

我有一个非常具体的数据库。该数据库包含4个表。

我有一个组件表。该组件表将始终具有系统。 系统可能有多个子系统。 每个子系统可以有多个部分。

这意味着为了拥有一个零件,我必须拥有一个子系统并且拥有该子系统我必须拥有一个系统。

一部分始终与一个子系统相关,该子系统将始终只与一个系统相关。

问题来自组件......因为必须有一个系统,而不是一个子系统,因此不是它的一部分。

如果我在零件和组件之间创建关系,我将能够知道哪个子系统以及关系中的系统。但是当我只有一个系统时会发生什么?这样我就无法检索系统。

我的想法是将子系统和系统直接与组件联系起来。在组件上总共有3个关系。但是这样,如果我有一个部分,那么子系统和组件之间的关系将包含已经存在于部件 - 组件关系中的信息。与系统组件关系相同。

如何删除重复的信息?

修改

为了便于阅读,我将复制@duffymo所做的摘要,但只进行一次更正:

  1. 四个实体:组件,系统,子系统和部件
  2. 组件系统是1:很多
  3. 系统子系统为0:很多
  4. 子系统 - 部分为0:很多

1 个答案:

答案 0 :(得分:1)

回到实体关系的开头。

我读到了这个:

  1. 四个实体:组件,系统,子系统和部件
  2. 组件系统是1:很多
  3. 系统子系统为0:很多
  4. 子系统 - 部分为0:很多
  5. 导致问题的是最后两个中的“可能有”。

    如果您的系统是单个部件,则会出现问题:没有系统或子系统干预。

    可能是你通过使组件部分多对多来规避问题。我没有看到系统和子系统之间的区别。我只有系统。