Database design 在ER图中两个关系是否可以关联?

Database design 在ER图中两个关系是否可以关联?,database-design,entity-relationship,Database Design,Entity Relationship,我正在为一个虚拟社交网站设计一个ER,在这里我需要关联两个关系。具体地说,根据所附的图表,我正在关联Posts关系,然后是(Followers)关系和一个新关系“can see” 也就是说,关注者可以看到他们关注的用户的帖子。我需要帖子,因为它将有用户的用户名谁发布了Blip与BlipID。图表尚未完成,所以忽略参与者、约束等。 有什么建议吗 正如一些评论所建议的那样,我相信您不需要“后跟实体”和“后跟实体” 相反,它应该是这样的: Users: UserId (PK) <User inf

我正在为一个虚拟社交网站设计一个ER,在这里我需要关联两个关系。具体地说,根据所附的图表,我正在关联Posts关系,然后是(Followers)关系和一个新关系“can see”

也就是说,关注者可以看到他们关注的用户的帖子。我需要帖子,因为它将有用户的用户名谁发布了Blip与BlipID。图表尚未完成,所以忽略参与者、约束等。 有什么建议吗


正如一些评论所建议的那样,我相信您不需要“后跟实体”和“后跟实体”

相反,它应该是这样的:

Users:
UserId (PK)
<User info columns>

UserFollowsUser:
FollowerId (FK from Users.UserId)
FollowedId (FK from Users.UserId)
<other info, if needed>
用户:
用户标识(PK)
UserFollowsUser:
FollowerId(来自Users.UserId的FK)
followdid(来自Users.UserId的FK)
现在,我不知道你是否想给下面的关系添加限制(例如,你想限制一个关注者在某些帖子上发表文章吗?或者他能看到他关注的用户的所有帖子吗?)

因为,如果不需要任何限制,就不需要“can read”实体


在Post表中,您只需要UserId FK,追随者可以阅读任何具有UserId=followeddid的帖子。

但是为什么您同时具有“Follows”和“Followed”关系呢?这不是一回事吗?我认为
can_see
应该是
用户
Blip
之间的关系,因为你想要用户看到Blip的关系,对吧?这是一个具体的要求,即用户的个人资料应该包含他所有追随者和他关注的所有人的ID。这就是为什么我把这两种关系都包括在内。但是,在转换为关系时,我将使用一个表,因为它本质上是同一个关系。是的,我希望用户看到该blip,但他们应该跟踪发布该blip的人。这就是为什么我很困惑,把这种关系放在哪里。虽然现在我认为,我可以在以后使用视图来满足这一点。如果您的案例是“用户可以从他们关注的用户那里阅读帖子”,那么您已经拥有了它,因为您可以通过选择查询获得您关注的那些用户的帖子。