Mysql Несколько внешних ключей в таблице для одного и того же основного ключа

У меня есть таблица user с userID в качестве первичного ключа. У меня есть другая таблица под названием Friends. В таблице Friends у меня есть два пользователя в качестве друзей, представленных столбцами userID и FrndID, где оба userID и FrndID должны быть userID в таблице user.

Я хочу обеспечить целостность данных. Могу ли я использовать что-то вроде этого?

ADD CONSTRAINT `ufd_users_fk` FOREIGN KEY (`userId`, `friendId`)
REFERENCES `users` (`userId`, `userId`) ON DELETE CASCADE ON UPDATE CASCADE;

Я хочу знать, есть ли REFERENCES пользователи ( userId , userId ) правильно ссылаться на столбец? Причина, по которой я не создаю 2 отдельных ограничения, заключается в том, что оба пользователя должны существовать в таблице user.

Ответ 1

Нет, вы должны создать два внешних ключа:

ADD CONSTRAINT `ufd_users_fk` FOREIGN KEY (`userId`) 
  REFERENCES `users` (`userId`) 
  ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `ufd_users_fk` FOREIGN KEY (`friendId`) 
  REFERENCES `users` (`userId`) 
  ON DELETE CASCADE ON UPDATE CASCADE;