具有可变外键的多对多

Many to Many with Variable Foreign Key

我正在为以下场景绘制 ERD 图:

一个用户可以有一个或多个订阅。一个电视节目可以在一个或多个订阅上。一部电影也可以在一个或多个订阅上。混乱来自外键。我将如何绘制它?外键名称等是什么?订阅可以链接到电影或电视节目,但不能同时拥有两者。为每个实体类型创建一个桥 table 是否更好,例如有电视节目的 TVSubscription table 和电影的 MovieSubscription table?

我对如何将订阅链接到多个实体感到困惑。

一个外键必须是另一个 table 上的主键。所以基本上,您的订阅 table 必须有多个外键。您订阅的正确结构 table 应该是这样的:

id (PK)
user_id (FK referencing USER PK)
movie_id (FK referencing MOVIE PK)
tv_show_id (FK referencing TV SHOW PK)

此结构应该可以解决您的问题。