【发布时间】:2021-10-23 14:42:09
【问题描述】:
假设我们有两个表:
- 品牌
- 用户
我想设计一个系统:
- 品牌可以追随品牌
- 品牌可以关注用户
- 用户可以关注品牌
- 用户可以关注用户
这是我到目前为止所做的:
- ed_id:被关注的user_id
- er_id:关注者的user_id
注意:这两个表是不同的,但我没有写下所有的属性以保持简单
虽然这在用户中运行良好,并且我可以通过一些简单的查询返回每个用户的关注者,但我不知道如何在用户和品牌之间建立关系,以便他们可以相互关注。
感谢任何帮助!
【问题讨论】:
-
您可以添加一个超级类型“Followers”。搜索“sql subtyping”很多信息可以找到。
-
您的
Brands和Users表看起来像存储同一实体实例的表。如果是这样,那么它们必须合并到一个表中,并且以下数据将是单个自引用(如果一个实例可能仅跟随一个实例)或联结表(如果一个实例可能跟随并被多个实例跟随)。 -
@Akina 我没有特意在 Brands 表中显示所有数据,否则两者之间存在很大差异。
-
它不会改变任何东西。是否有任何理由将品牌和用户视为独立的实体?
标签: sql database-design