首页 文章

一对多关系中的交汇表?

提问于
浏览
0

我有一个关于交接表的问题,我真的希望你可以帮助我,因为它让我感到困惑 . 我知道连接表通常用于创建两个一对多关系而不是一对多关系,但请参阅下面的示例:

在假设情况下,用户可以拥有多张照片(如投资组合),但也有可以拥有多张照片的群组 .

这种情况看起来像这样我相信(如果我在这里已经错了,请纠正我):Image 1

但是,使用如下图所示的联结表创建情境不是更好:
Image 2

通过这种方式,您可以防止Photo表获取大量NULL值,假设您将两个外键User_ID和Group_ID设置为NOT NULL .

感谢您的时间,我希望有人可以指导我 .

1 回答

  • 0

    这就是我所做的......我创建了一个有三列的关联表

    leftsideID,relatortype,RightSideID

    在你的情况下..你有两种关系类型,将照片连接到事物 . 用户和组 .

    所以我会有两个相关类型USERPHOTO和GROUPPHOTO . 所有RightSideID都指向照片表中的照片键 .

    所有左侧ID都带有userid或groupid,基于relator类型,例如可以是:

    leftsideid    relatortpype    rightside
    ==========    ============    =========
    1             'userphoto'       1
    2             'groupphoto'      1
    1             'userphoto'       2
    

    这说(三行),user1有两张照片(1,2),group2有照片(1)

    没有空 . 我已经使用了很多成功的设计模式 .

    它基本上是一个通用的连接表,给出了你的例子 .


相关问题