如何从一个 table 设置两个外键?

How to set two foreign keys from one table?

我有两个 tableUSERS 和 FRIENDSHIPS,我需要的是在 FRIENDSHIPS 中记录用户之间的友谊 table.I 认为我应该使用来自 USERS table 的两个外键,一个用于主要用户和另一个用户他是朋友 with.I 刚开始学习所以我只知道使用 Workbench 一些 extent.My 问题是你如何从同一个设置两个外键table?

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

一个"user"可以有多个"friendship"(零个,一个或多个),但是一个"friendship"只能与两个"user".[=19=相关]

在您的 "friendship" table 上添加两个约束,假设您的两列分别命名为 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" table 添加外键。外键应该从子 table 指向父 table.

举个例子:

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

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

根据这些 table 的内容,Peter (id=2) 有两个朋友,Paul (id=3) 和 Mary (id=5)。而保罗(id=3)有一个朋友保罗(他自己,id=3)