【问题标题】:Define relationship dependent on another relationship in conceptual-model定义依赖于概念模型中另一个关系的关系
【发布时间】:2016-03-14 14:36:20
【问题描述】:

我需要帮助在数据库的概念模型中定义关系。我在 PowerDesiner 中做这件事。我有 3 个实体(我们称它们为 A、B 和 C)。

A doesn't have to have B, if A has B then only once.
B has to have at least one A.
B may have C, but doesn't have to.
C have precisely two B.
C has at least one A.
C can have A only if A is part of B, which is in relationship with C (one of the two B to C).
A may have C, but doesn't have to.

这对我来说太复杂了,我有一个想法,但结果完全错误。这只是项目的一部分,但其余的不会影响这 3 个。我需要在概念层面上做这些限制,这正是我的问题。

我的第一个并且可能是最好的想法是http://i.snag.gy/Ofdze.jpg 但它不包括只有当 A 是 B 的一部分时 C 才能拥有 A 的条件,这与 C 有关系(两个 B 到 C 之一)

然后我想出了这个http://i.snag.gy/gKNQ9.jpg,但作为之前我认为它不包含相同条件的解决方案,更糟糕的是似乎真的搞砸了解决方案。

【问题讨论】:

  • 建议:以他们在模型上显示的方式陈述你的关系。例如。 “一个或多个 A 有零到一个 B,”“两个 B 有零到多个 C”等等。您需要解析关联以正确建模。因此,为 A 到 B 关系和 B 到 C 关系添加实体。必要时可以在概念模型中这样做。

标签: entity-relationship data-modeling powerdesigner conceptual-model


【解决方案1】:

好的,
为清楚起见,我会将您的关系条件与您描述的行号相关,因此 Row_1-2 将引用您问题的第一行和第二行中的陈述。

请注意,您的第 5 条和第 6 条语句中有一个逻辑错误
你说C 至少有一个A,而C 只有在...... 的情况下才能有A,这两者是不可能同时存在的。
我将跳过第 5 个并保留第 6 个答案。

我们看,首先添加A和B的关系

然后选择关系并右键单击它并选择更改为实体
你会得到:

注意这个新实体标识了 A 和 B 之间的关系,您将需要它来完成您的第 6 条语句。
现在添加 C 和 B 之间以及 C 和 A 之间的关系(通过 Rel_A-B

注意,我已经调整了 B 和 C (2,2) 之间关系的基数

【讨论】:

  • 感谢您的努力,当时我无法自己解决,所以我修改了问题。无论如何,我所说的第 5 条和第 6 条语句的意思是,C 必须有 A,只有当 A 是 B 的一部分时,A 才能分配给 C,这与 C 有关系......无论如何,你的澄清还是很有帮助的,我可能仍然使用它
  • 不客气。现在我更好地理解了您的第 5 和第 6,我认为提供的模式仍然有效,您只需设置强制从 CA-B_Rel 的关系即可将基数从 0,1 设置为 1,1
猜你喜欢
  • 1970-01-01
  • 2021-06-14
  • 2016-03-15
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 2015-10-08
相关资源
最近更新 更多