1

我的学校老师和我正在争论如何将正确的基数写入两个类之间的关系:

    Customer ----places->---- Order

所以练习告诉我,一个客户有 0 - x 个订单,一个订单总是属于一个特定的客户。所以我的想法是:

    Customer -1---places->---*- Order

我的老师解决方案:

    Customer -1..*---places->---*- Order

那么,你怎么看呢?我希望,我是对的:)

4

2 回答 2

2

第一个是正确的。0..*,或简称 *,位于 Order 类旁边。1..1,或简称为 1,位于 Customer 类旁边。

你确定你的老师指定了UML吗?

于 2016-05-09T12:48:54.193 回答
0

是对的。

您描述的 1:n 关系指出,1 个客户下了 0..n 个订单。可能有客户没有订单,但如果有订单,就有一个客户。一份订单必须有 1 位且只有 1 位客户。这对我来说完全有道理。

1..n:? 解决方案在各个方面都被打破了。首先,Order 方没有基数。但是规范没有定义默认值。当然,图不必包含基数,但图也只是模型上的一个视图。如果您将基数排除在外而不在其他地方提及它是undefined。此外,1..n 基数表明,1 个或多个客户已下订单。假设练习与一些现实世界的问题有关,这对我来说似乎完全没有意义。

于 2016-05-09T13:27:39.687 回答