1
4
你需要问自己的一件事是: 如果用户选择一个拥有100个作者的频道,而该频道发生了更改,那么这些更改是否应传递给用户?这个问题的答案将在很大程度上决定设计。 如果需要自动流通,那么在用户选择通道时不要复制作者。设计需要容纳一个频道订阅。 在OO术语中,用户有零个或多个订阅,这是作者或频道的父类。一个渠道与作者有一对多的关系。实体表示基本相同。您只需要订阅两个实体的父级。 如果您不想通过更改流,您需要对通道进行版本或执行您正在执行的操作:将作者从通道复制到用户的订阅中。 |
2
1
您可以将频道视为元作者,即订阅频道的操作与订阅作者的操作非常类似。这给了你两个好处:1。当新作者加入频道时,该频道的所有用户都会自动订阅该作者。2。可能用户订阅了Isaac Newton。然后她也订阅了“物理学家”频道,但后来又取消了订阅。从用户那里删除“物理学家”订阅也会删除艾萨克牛顿,这可能是不需要的。 |
3
0
我建议换一种说法。 简而言之,您希望管理“订阅”。订阅有两种类型:“个人作者”和“频道”。 因此,您可以分别定义一个名为subscription的基类和两个子类author和channel。“channel”行应该能够与作者保持1:N的关系。 然后在前端,所有订阅都将在固定时间内完成。 此外,当信道中的组成作者发生变化时,该设计还将涉及数据维护问题。 |
4
0
我的方法是让People表同时包含用户和作者,而author表只包含authors的People键。然后,作者将创建一个成员表,该表类似于链接表。 |
Michael Samuel · MYSQL在以下情况下自动创建索引 6 年前 |
Patricia Rozario · 数据库设计确保一对一关系 6 年前 |
dryhay · MySQL“多对多”关系错误 6 年前 |
L. Fox · 我在这里用的是什么样的Laravel雄辩的关系 6 年前 |
Geoff Harper · 我应该如何构建关系松散的SQL db 6 年前 |
waroxx · SQL—当多个表具有相同的列时,最好怎么做 6 年前 |
Lumpi01 · SQL 2不同的注释类型-最佳解决方案? 6 年前 |
Hayreddin Tüzel · 预约系统数据库建模[关闭] 6 年前 |