我在一个 ER 图中创建了两个关系中的一个。我可以这样做吗?

I created in an ER Diagram two relationships in only one. Can I do that?

首先,我创建了业务规则:

用户可以在城市发表评论,用户评论可以被其他用户回复。

评论层级为:根评论、回复根评论、回复回复根评论。所以, 层次结构只有一层。

关于我的想法的例子:

Ana123: I was in Seville and I love it. (Root comment)
    Juan321: Ohh, yesss it's beautiful. (answer to root comments)
    Manuel99: "Juan321" Yessss :D (answer to answer root comments)

然后:

根据业务规则,我得到了这个 ER 图:

NOTE:红色关系我删除了,因为它与CITY隔绝,对我来说意义不大。

所以从 USER - CITY 关系我得到下一个 table:

TABLE: user_comments_city
id_comment(PK) | id_user | id_city | text | date

但正如我所说,我将两个关系合并为一个,我添加了 "answer_comment" 字段(用这个 我认为我做到了这一点)。我将使用上面的示例:

TABLE: user_comments_city
id_comment(PK) | id_user | id_city | text                           | date              | answer_comment
...              ...       ...       ...                              ...                 ... (NOTE: "..." represents other comments)
15               2         4         I was in Seville and I love it.  20/08/2019 20:20
16               13        4         Ohh, yesss it's beautiful.       20/08/2019 21:31    15
...              ...       ...       ...                              ...
21               9         4         Yessss :D                        21/08/2019 11:20    16
22               17        4         I love it too :)                 21/08/2019 14:00    15

所以,我问:我能做到吗?有没有有效的方法来实现?

简答:是的,你可以做到。

长答案:user_comments_city table中的代理标识符(id_comment)表示概念关系已更改为实体集。关系由它相关的实体集的键标识。您修改后的 user_comments_city table 对应的 ER 图如下所示:

真的,你所做的不是将两个关系合并为一个,而是将三个关系(user_commentscity_commentsanswer_comments)反规范化为实体关系COMMENT 实体集。