在概念模型中定义依赖于另一个关系的关系

Define relationship dependent on another relationship in conceptual-model

我需要帮助定义数据库概念模型中的关系。我正在 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.

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

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

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

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

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

我们来看一下,首先加上A和B的关系

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

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

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