gpt4 book ai didi

mysql - 一对多关系中的连接表?

转载 作者:行者123 更新时间:2023-11-29 21:41:41 26 4
gpt4 key购买 nike

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

假设用户可以拥有多张照片(例如作品集),但也有组可以拥有多张照片。

我相信情况会是这样的(如果我已经错了,请纠正我): Image 1

但是使用如下图所示的联结表创建一个情况不是更好吗:
Image 2

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

感谢您抽出宝贵时间,希望有人能指导我。

最佳答案

这是我所做的...我创建了一个包含三列的关系器表

leftsideID、relatortype、RightSideID

就您而言..您有两种将照片与事物连接起来的关系类型。用户和组。

所以我有两个关系类型:USERPHOTO 和 GROUPPHOTO。所有 RightSideID 都指向照片表中的照片键。

所有左侧 ID 都带有用户 ID 或组 ID,具体取决于相关类型,示例可能是:

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

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

没有空值。我大量使用了设计模式并取得了很大的成功。

根据您的示例,它基本上是一个通用的连接表。

<小时/>

关于mysql - 一对多关系中的连接表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34443027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com