首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们能不能在E图中有一个三元关系和一个递归关系?

我们能不能在E图中有一个三元关系和一个递归关系?
EN

Software Engineering用户
提问于 2019-10-20 18:31:20
回答 1查看 475关注 0票数 2

我正在为一个简单的系统设计一个E图,其中有一些用户和竞赛。用户可以创建竞赛或邀请其他可以决定接受或不接受的用户参加竞赛。

我想知道是否可以使用递归图在E中建模,因为用户可以邀请其他用户与竞赛混合在一起,因为邀请被链接到特定的竞赛。

说得通吗?或者有什么可供选择的?

我的E:的<#>Image

EN

回答 1

Software Engineering用户

发布于 2019-10-20 20:27:03

你的模型不符合你的叙述。上面写着:

  • user可以创建一个contest
  • user可以邀请另一个usercontest。邀请用户不需要成为创建者。他(她)甚至都不被邀请。

如果希望创建者只能邀请users,则应该使invitation成为contest和被邀请的user之间的二进制关系,因为入侵用户是竞赛的创建者。

现在,如果您希望创建者和已经被邀请的用户(或一组负责任的用户)能够发送邀请,您可以考虑三元关系。

除了递归关系在原则上是一元的。三元关系使得图表很难读懂(特别是在添加基数时)。此外,他们常常将自己暴露为隐藏实体的症状。您将关联命名为Invitation而不是Invite这一事实只会强化这种印象。

使用以下备选方案可以显著提高模型的清晰度:

  • 实体Invitation
  • invites toInvitation的关系
  • sendsUser的关系
  • UserInvitation之间的关系
票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/399916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档