본문 바로가기
MySql

MySQL mysql 테이블의 여러 외래 키를 동일한 기본 키로

by 베이스 공부 2020. 12. 22.
반응형

기본 키로 userID 가있는 user 테이블이 있습니다. Friends 라는 다른 테이블이 있습니다. Friends 테이블에는 UserID FrndID 열로 표시되는 두 명의 사용자가 친구로 있습니다. 여기서 UserID FrndID user 테이블에서 userID 여야합니다.

데이터 무결성을 강화하고 싶습니다. 이런 걸 사용해도 될까요?

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

REFERENCES users ( userId , userId ) 가 열을 여러 번 올바르게 참조하고 있는지 알고 싶습니다. 2 개의 별도 제약 조건을 생성하지 않는 이유는 두 사용자가 모두 user 테이블에 있어야하기 때문입니다.

 

해결 방법

 

아니요, 두 개의 외래 키를 만들어야합니다.

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;

 

참조 페이지 https://stackoverflow.com/questions/18839599

 

 

반응형

댓글