database - UML 类图中关联的复杂规则

标签 database class uml modeling class-diagram

enter image description here所以我需要为大学类(class)练习 UML,但我无法弄清楚以下内容:

我们需要制作一个体育协会的 UML 类图。有一张玩家 table 。球员表的一个子类是裁判员表。球员是球队的一部分,裁判也是球队的一部分(因为裁判也是球员)。一名裁判被分配到一场比赛,但不能是他自己球队的比赛。

我找不到最后一句的答案。我如何将其放入 UML 类图中?

UML 图是荷兰语的。 Wedstrijd = 比赛,scheidsrechter = 裁判,其他的都没有必要。

最佳答案

您的图表可能有几个问题,因为它表示对于一场竞赛 (Wedstrijd),只有一个 Team(复合聚合),这听起来既不具有竞争力,也不有趣的。此外,它还说俱乐部 (Sportsverijn) 最多有一名成员,这与叙述不符。

一旦这些问题(以及其他一些问题)得到解决,并且假设 Wedstrijd 涉及两个团队,您可以向模型添加约束来表达这些复杂的条件。

通常,您可以在大括号中以明文形式表达它们:{ 不能担任涉及相关球队的比赛的裁判 } 旁边的比赛之间的关联 (Wedstrijd) >) 和裁判 (Scheidsrechter)。这种自然语言约束是不明确的。可以用 OCL 编写更正式的表达式,例如: match.team->includes(match.referee.team) == false

表达式的细节当然取决于你的模型是否是快照(似乎是这里的情况),或者是否考虑到裁判可能会及时更换球队的事实。在这里,我有一个替代模型,可以避免复合聚合,并将裁判与团队相关联,并提供两个约束示例:

enter image description here

关于database - UML 类图中关联的复杂规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75506702/

相关文章:

uml - 没有生命线的序列图合法吗?

database - 为什么 Swift 2 无法将数据保存到 SQLite 数据库?

mysql - 数据库规范化: relationship based on join

c++ - 声明成员函数时 *New() 是什么意思?

uml - 高质量的软件示例

uml - 我可以在 SCRUM 中使用用例图吗?

php - 了解 PHP 和 MySQL 安全性基础知识

c# - 如何使用 Windows 窗体数据网格更新数据库? ( Visual Studio 2010)

Python——从该类的实例中调用与该类相同的文件中的函数?

java - Android - 为什么要将对象转换为类?