我正在尝试向应用程序添加功能,用户可以在其中订阅所做的更改:
- 到另一个实体(由任何用户)
- 由另一个用户(对任何其他实体)
- 两者的组合(最后一个是可选的,但使问题更具挑战性)
我想知道如何最好地将这些规则保存到数据库中。
我自然倾向于每个给定的实体(包括用户本身),我添加了一个额外的 UserSubscription 表/实体(例如,PublisherUserSubscription、BookUserSubscription、UserUserSubscription)
这意味着订阅将保持完整性并强制执行。但是,如果我以后更改订阅模型,这似乎会迅速增加我需要的表数量,并且可能导致非常脆弱的设计。(可能需要更新每个现有表)。
鉴于这是一个相当普遍的现实世界场景,我预计会有一些模式。谁能推荐一些?