我在一个 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)
然后:
- 零个或多个城市的用户评论。
- 零个或多个用户评论了一个城市。
- 一个用户回答零个或多个用户。
- 一个用户被零个或多个用户回答。
- 用户有:id、姓名、电子邮件、密码。
- 城市有:id、名称、描述。
根据业务规则,我得到了这个 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_comments
、city_comments
和 answer_comments
)反规范化为实体关系COMMENT
实体集。
首先,我创建了业务规则:
用户可以在城市发表评论,用户评论可以被其他用户回复。
评论层级为:根评论、回复根评论、回复回复根评论。所以, 层次结构只有一层。
关于我的想法的例子:
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)
然后:
- 零个或多个城市的用户评论。
- 零个或多个用户评论了一个城市。
- 一个用户回答零个或多个用户。
- 一个用户被零个或多个用户回答。
- 用户有:id、姓名、电子邮件、密码。
- 城市有:id、名称、描述。
根据业务规则,我得到了这个 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_comments
、city_comments
和 answer_comments
)反规范化为实体关系COMMENT
实体集。