更好的UML类图结构来表示个人的婚姻

更好的UML类图结构来表示个人的婚姻,uml,class-diagram,Uml,Class Diagram,目前我正在做一个更大项目的一部分,但我不太确定如何处理系统的这一部分 每个人都可以结婚多次,每一次婚姻都需要有一名主礼人、伴侣1、伴侣2和见证人。个人可以在多重婚姻中扮演这些角色 我想知道是否有一种方法可以用较少的关联来表示所有必要的个体,因为当查看整个系统时,图表很快就会变得一团糟 将partner1和partner2替换为partner2,当然,partnerWitness也是如此 individualId和marriageId是错误的,因为这意味着它们是静态的。它们可能是主键,但它们是实

目前我正在做一个更大项目的一部分,但我不太确定如何处理系统的这一部分

每个人都可以结婚多次,每一次婚姻都需要有一名主礼人、伴侣1、伴侣2和见证人。个人可以在多重婚姻中扮演这些角色

我想知道是否有一种方法可以用较少的关联来表示所有必要的个体,因为当查看整个系统时,图表很快就会变得一团糟

将partner1和partner2替换为partner2,当然,partnerWitness也是如此

individualId和marriageId是错误的,因为这意味着它们是静态的。它们可能是主键,但它们是实例成员,而不是类成员。你也可以把它们命名为id,没有前缀也没用

什么是合作伙伴?是否可以由类关联支持

分开的关系“个人->婚姻”是错误的,因为这样的婚姻可能与婚姻不同,个人参与其中,无论其角色如何,而这不是你想要的。因此,删除它并使用双向关系

听你的话

statusPartner是指结婚前伴侣的身份(离婚、寡妇等)

强制通过类关联对其进行管理:

  • 只有合作伙伴,您无法知道谁是statusPartner1和statusPartner2,当然,在类关联的情况下,您不会遇到这个问题
  • 你也可以在个人中移动该属性,但在这种情况下,它不仅存在于伴侣身上,而且没有任何意义
例如:

注:对于主事人和证人,也可以使用类别关联,仅使用一种关系:

约束条件是有两个人扮演证人角色,一个人扮演主事人角色

该角色也可以是枚举,也可以用布尔值形式的
isWitness
替换

也可以只使用一个类关联:

第一个约束条件是伴侣的角色是伴侣,第二个约束条件是婚姻中有两个人扮演证人角色,一个扮演主事人角色,两个扮演伴侣角色

  • 太好了!但请注意,开始时有partner1Witness和partner2Witness,也就是说,每个合伙人都有自己的见证人
  • 第一个约束说伴侣的角色是伴侣,第二个约束说婚姻中有两个人扮演证人角色,一个人扮演主事人角色,两个人扮演伴侣角色 可能正在绘制图表
  • 图中可能的方案

    您在中缺少一个“d”Individual@brunostatusPartner只是婚姻前伴侣的身份(离婚、寡妇等)。谢谢你的帮助@我编辑了我的答案,请重新阅读,我在上面添加了一个更新的图片,我希望这就是你的想法。再次感谢您的建议@bunnytechnician不,我编辑了我的答案,将第一个图表与我的答案的第一个版本相对应,另外两个图表用于其他两种方式。下一步是将
    Mariage
    专门化为
    Contract
    ,扩大角色枚举以添加当事人,通过在合同层面上解决,概括与个人的联系,并将具体的合同留给海运公司;-)OP要求一种简化模型的方法,你为什么要提出一个更复杂的模型?为什么合伙人和合伙人证人之间存在不对称?