UML类图-表示';或';

UML类图-表示';或';,uml,class-diagram,Uml,Class Diagram,我有4张桌子: 医生 身份证、姓名、房间号 任命 ID,何时治愈,是否注意 病人 身份证、姓名、地址 DPP任命 医生,病人,任命ID 这大致变成 不过,我现在想更改它,以便可以预约看医生或护士 如何更改类图以反映“或”类型关系?根据模型结构的其他部分,有不同的解决方案。我相信还有一个护士班,该id与医生没有任何特殊关系(如员工继承或类似)。因此,这将是一个通用的解决方案 添加预约和护士之间的关联,类似于现有的医生关联。医生(和护士)端的相应多重数应为0..1,并且应添加一条附加规则-约会对象

我有4张桌子:

医生 身份证、姓名、房间号

任命 ID,何时治愈,是否注意

病人 身份证、姓名、地址

DPP任命 医生,病人,任命ID

这大致变成

不过,我现在想更改它,以便可以预约看医生或护士


如何更改类图以反映“或”类型关系?

根据模型结构的其他部分,有不同的解决方案。我相信还有一个护士班,该id与医生没有任何特殊关系(如员工继承或类似)。因此,这将是一个通用的解决方案

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

这个规则可以在OCL中指定(如果您喜欢正式的样式),也可以在图表上指定为一个简单的文本注释

有一些其他的方法来建模,没有额外的限制,但是模型本身(可能)是非常复杂的。例如,您可以从抽象类AppointResponder派生Doctor and Nurse,并使用该侧的重数1..1将其与约会链接起来。该模式允许更大的灵活性和可扩展性(易于添加新的潜在任命受访者),无OCL,无限制

由您选择更符合您的模型和未来扩展的方法

并不是说这不是一种或类型的关系,而是XOR-在每次预约中,必须有人代表医院(这是一个合理的猜测:))