【发布时间】:2019-12-01 00:05:17
【问题描述】:
我有如下实体关系图 (ERD) 所示的数据库设计:
https://app.dbdesigner.net/designer/schema/0-social_media-00a3405c-0bcd-4809-9f8e-e86c1b8e5f33
我想知道我是否应该在Participants 和Conversation 之间建立一对多关系。
问题:需要很多连接
问题是我们每次想要获得Participants 的id 的Conversation 来广播Messages 时都需要加入。
不仅如此,我们还需要Messages 的content,这意味着我们需要在三个表之间进行两次连接。
问题
- 对此是否有更可扩展的解决方案?
- 是否存在任何瓶颈问题?
- 除了作为额外奖励之外,桌子还有其他问题吗?
【问题讨论】:
-
实际上关系是多对多,你同意吗?
-
那么你会实现一个包含参与者ID和对话ID的表作为两个表之间的外键吗?
标签: relational-database entity-relationship scalability erd