0

我需要帮助在数据库的概念模型中定义关系。我在 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但作为之前的解决方案,我认为它不包含相同的条件,更糟糕的是似乎真的搞砸了解决方案。

4

1 回答 1

1

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

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

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

在此处输入图像描述

然后选择关系并右键单击它并选择Change to Entity
您将获得:

在此处输入图像描述

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

在此处输入图像描述

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

于 2016-12-07T12:00:36.870 回答