Я использовал онлайн-конструктор 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 должна выполняться, однако). –