gpt4 book ai didi

mysql - 如何在一张表中设置两个外键?

转载 作者:行者123 更新时间:2023-11-29 12:28:39 25 4
gpt4 key购买 nike

我有两个表 USERS 和 FRIENDSHIPS,我需要的是在 FRIENDSHIPS 表中记录用户之间的友谊。我认为我应该使用 USERS 表中的两个外键,一个用于主用户,另一个用于他的 friend 用户。我刚刚开始学习,所以我只知道在某种程度上使用Workbench。我的问题是如何从同一个表设置两个外键?

最佳答案

您的外键指向错误的方向。

一个“用户”可以有多个“好友”(零个、一个或多个),但一个“好友”只能与两个“用户”相关。

在“友谊”表上添加两个约束,假设您的两列分别命名为 from_useridto_userid

CONSTRAINT FK_friendship_from FOREIGN KEY (from_userid) REFERENCES user (id)
ON UPDATE CASCADE ON DELETE CASCADE

CONSTRAINT FK_friendship_to FOREIGN KEY (to_userid) REFERENCES user (id)
ON UPDATE CASCADE ON DELETE CASCADE

如果不清楚,请不要向“用户”表添加外键。外键应该从子表指向父表。

举个例子:

user
id name
-- ------
2 Peter
3 Paul
5 Mary

friendship
from_userid to_userid
----------- ---------
2 3
2 5
3 3

根据这些表的内容,Peter (id=2) 有两个 friend ,Paul (id=3) 和 Mary (id=5 )。 Paul (id=3) 有一位 friend Paul(他本人,id=3)

关于mysql - 如何在一张表中设置两个外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27911827/

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