我正在为一个简单的系统设计一个E图,其中有一些用户和竞赛。用户可以创建竞赛或邀请其他可以决定接受或不接受的用户参加竞赛。
我想知道是否可以使用递归图在E中建模,因为用户可以邀请其他用户与竞赛混合在一起,因为邀请被链接到特定的竞赛。
说得通吗?或者有什么可供选择的?
我的E:的<#>Image

发布于 2019-10-20 20:27:03
你的模型不符合你的叙述。上面写着:
user可以创建一个contestuser可以邀请另一个user到contest。邀请用户不需要成为创建者。他(她)甚至都不被邀请。如果希望创建者只能邀请users,则应该使invitation成为contest和被邀请的user之间的二进制关系,因为入侵用户是竞赛的创建者。
现在,如果您希望创建者和已经被邀请的用户(或一组负责任的用户)能够发送邀请,您可以考虑三元关系。
除了递归关系在原则上是一元的。三元关系使得图表很难读懂(特别是在添加基数时)。此外,他们常常将自己暴露为隐藏实体的症状。您将关联命名为Invitation而不是Invite这一事实只会强化这种印象。
使用以下备选方案可以显著提高模型的清晰度:
Invitationinvites to与Invitation的关系sends与User的关系User与Invitation之间的关系https://softwareengineering.stackexchange.com/questions/399916
复制相似问题