【问题标题】:Many to Many with Variable Foreign Key具有可变外键的多对多
【发布时间】:2021-09-18 15:37:09
【问题描述】:

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

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

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

【问题讨论】:

    标签: database entity-relationship diagram


    【解决方案1】:

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

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

    这个结构应该可以解决你的问题。

    【讨论】:

    • 谢谢。我确实有一个后续问题,只能存在其中一个外键。例如一个订阅可以是电视节目或电影。我将如何适应呢?将 TVShowSubscription 链接到 TVShow 表,将 MovieSubscription 链接到 Movie 表不是更好吗?
    • 是的,如果您必须在订阅表中只有一个 FK,您应该将此表拆分为 2 个不同的表:TVShowSubsription 和 MovieSubscription。
    • @AdamA 如果我的回答解决了你的问题,请接受它为正确的!
    猜你喜欢
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多