我认为您的模型没有多大意义,但在我解释细节之前,让我介绍一个我认为更准确地代表您的领域的替代模型:
"Car" [0..*] --- <listeningTo> --- [0..1] "Radio Station"
"Car" [0..*] --- <couldTuneInto> --- [0..*] "Radio Station"
Association #1非常接近同一件事,唯一真正的区别是我的表示不需要汽车收听广播电台(因此是 0..1 而不是 1)。在您的关系中使用不同的动词也可能有意义,因为通常汽车不听广播电台(车内的人听)。此外,您提出这两种关系的方式,尚不清楚“可以调入”和“收听”在逻辑上究竟是如何相关的。如果您将“收听”替换为“已调入”,则两者:
- 对广播电台的汽车状态表达更清晰;和,
- “could tune into”和“is tune into”之间的关系更容易解释。
协会 #2与您的模型不同。您的模型似乎在说“许多汽车可以调谐到一个且只有一个广播电台”。这并不能真正代表现实世界,除非您正在建模的域位于某个只有一个广播电台的非常农村地区。“could tune into”关系具有表示可能性的语义,通常一辆车可以调谐到多个广播电台(因此这些搜索/扫描按钮、预设电台等的原因)。汽车可能无法调到任何广播电台(例如天线坏了),所以这似乎也应该是可选的,并且有多个[0..*]
.