我正在开展一个学校项目,该项目需要创建 ER 图和从该图派生的数据库模式。该模式有一些非常严格的大小要求(不超过 x 个表)。我遇到了一个问题,我的一些实体遵循“is-a”类型的关系,这种关系最好使用 EER 模型进行描述,我们不允许使用这种关系。这是我要实现的目标的非常粗略的概述:
我需要跟踪几个具有许多(完全独特的属性)的独特 [Part]。它们都共享一些属性,例如 (QuantityInStock)。我有使用任何(数量)这些不同 [Part] 的 [Machine]。
如果我遵循 ER 模型,我相信机器将与每个独特的零件类型有单独的 M 对 N 关系。每个 M 对 N 关系都应该转换成自己的表。由于我们被允许拥有的严格的最大表数,这是不可能的。
如果我遵循 EER 模型,则翻译过程只会生成一个或两个额外的表 - 每个 [Part] 不会再生成一个关系。
我需要完成的是以某种方式将“is-a”关系(即 [ThisPartType]“is-a”[Part])转换为在 ER 模型中起作用的东西。我需要一些方法来将不同的独特部件与使用这些部件的机器联系起来。
举一个我要做什么的例子:
机器 A 使用 PartA[1] 的 30 个、PartB[21] 的 47 个、PartC[18] 的 22 个和 PartD[54] 的 3 个。
机器 B 使用 PartC[12] 的 8 个和 PartD[44] 的 1 个。
机器 C 使用 PartF[0] 的 1 和 PartZ[28] 的 5。
我想访问 PartB[21] 的唯一信息位(半径、线程宽度),以及查询所有 PartC 中最重的部分。但我还需要能够以不需要更多表格的方式将这些部件分配给机器。
我希望这有点道理。感谢您提供的任何提示。