UML类图 - 'OR'的表示法

时间:2014-05-11 14:15:49

标签: uml class-diagram

我有4张桌子:

医生 ID,名称,roomNumber

约会 ID,whenOccured,ifAttended

患者 ID,姓名,地址

DPappointments DoctorID,PatientID,AppointmentID

这大致成为

enter image description here

但是,我现在想要改变它,以便可以预约看医生或护士吗?

如何更改类图以反映'OR'类型关系?

1 个答案:

答案 0 :(得分:2)

根据模型的其他结构,有不同的解决方案。我认为还有一个类Nurse,并且该id与Doctor没有任何特殊关系(如从Employee或类似的继承)。所以,这将是一个通用的解决方案。

添加在约会和护士之间添加关联,类似于现有的医生。 Doctor(和护士)方面的相应多重性应为0..1,并且应添加一个附加规则 - 约会对象必须具有指向Doctor对象或Nurse对象的链接

此规则可以在OCL中指定(如果您喜欢正式样式)或在图表上作为简单的文本注释。

还有其他一些方法来模拟这个,没有额外的限制,但模型本身(可能)是必要的复杂。例如,您可以从抽象类派生医生和护士 - AppointmentRespondent ,并使用该方面的多重性1..1将其与约会链接。这种模式允许更大的灵活性,更容易扩展(很容易添加新的潜在AppointmentRespondents),没有OCL,没有限制。

您可以选择更符合您的型号和未来扩展的方法。

P.S。并不是说这不是OR型的关系,而是异或 - 在每次任命中都必须有代表医院的某些人(这是一个合理的猜测:))。