온라인 SQL 빌더를 사용하여 제가 작업중인 일부 MySQL 테이블을 디자인하는 데 도움이되었습니다. 외래 키는 항상 나를 혼란스럽게합니다.이러한 외래 키는 어떤 기능을 수행합니까?
이 4 가지 외래 키를 추가하려고했지만 내가 추가하기 전에이를 확인하려고합니다.
ALTER TABLE `users` ADD FOREIGN KEY (user_id) REFERENCES `settings` (`user_id`);
ALTER TABLE `logins` ADD FOREIGN KEY (user_id) REFERENCES `users` (`user_id`);
ALTER TABLE `mail_threads` ADD FOREIGN KEY (folder_id) REFERENCES `mail_folders` (`folder_id`);
ALTER TABLE `mail_message` ADD FOREIGN KEY (thread_id) REFERENCES `mail_threads` (`thread_id`);
그래서 기본적으로 무엇을 제한합니까? 아래의 표 4 개 모두, 나는 그것들에 외래 키를 사용해서는 안되며, 다른 것들을 망칠 필요없이 개별적으로 업데이트 할 수 있어야합니다.
외래 키는 선택 사항이 아닙니다. 그것들은 당신의 도메인 관계의 일부입니다. –
MyISAM을 테이블 형식으로 사용하는 경우에는 현재 외부 키 선언이 무시됩니다. 현재 외래 키 제약 조건을 위해 InnoDB가 필요합니다 (MyISAM에 대한 외래 키 지원은 작동해야합니다). –