13

主キーとしてのテーブルがありuserます。userIDという別のテーブルがありますFriends。テーブルには、列でFriends表される友人として 2 人のユーザーがいて、両方ともin tableである必要があります。UserIDFrndIDUserIDFrndIDuserIDuser

データの整合性を強化したい。このようなものを使用できますか?

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

REFERENCESユーザー(userId ,userId)が列を複数回正しく参照していることを知りたいですか? 2 つの個別の制約を作成しない理由は、両方のユーザーが table に存在する必要があるためuserです。

4

1 に答える 1

14

いいえ、2 つの外部キーを作成する必要があります。

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;
于 2013-09-17T00:50:18.097 に答える