UML 类图中的循环关系

问题描述 投票:0回答:1

Relation ship circle

我想知道在这种情况下是否可以避免循环关系。

说明: posts 表有一个外键 city_id 来指定帖子(产品)的位置,用户也有一个 city_id 来指定他/她居住的地方。现在,用户可以拥有一个“a”城市并创建一个具有“b”城市的帖子,这对我来说是逻辑,因为用户可能正在度假,也可能在远离他/她自己的城市的地方。对于用户来说,默认情况下,当他/她第一次登录时,城市设置为空,但他/她可以将一个城市分配给他/她的个人资料。该帖子必须有城市位置。

您认为有办法避免这种情况下的循环关系吗?

我尝试删除循环关系,因为在大多数情况下这是一种不好的做法,但似乎在我的情况下,我无法删除它,因为与概念和我的网站的工作方式相比,它没有意义

laravel class uml class-diagram
1个回答
0
投票

这里不存在结构性循环依赖问题,因为 0.. 重数允许打破循环:

  • 帖子与城市相关联
  • 用户可以关联到城市
  • 帖子也与用户相关联
  • 没有任何限制,因此 Post.User.City 和 Post.City 在任何时刻都可能不同

这是正常的关联,就像您在现实生活中会发现更多关联一样,其中不止一条路径可以链接两个实例。

问题更多是行为性的:如何初始化用户的城市(多重性告诉我们它是可选的)以及如果用户没有城市,如何确定帖子的城市。地理定位可以是一个答案。另一个约束要求与帖子关联的用户在创建帖子时必须拥有城市。所以更多的是澄清要求。

© www.soinside.com 2019 - 2024. All rights reserved.