Одна из распространенных конструкций баз данных предполагает установление связей между таблицами с использованием составных ключей. Составной ключ — это комбинация нескольких столбцов, которая однозначно идентифицирует запись в таблице. В этом сценарии у вас есть две таблицы, учебник и группа, где вам нужно связать составной уникальный ключ в учебнике с полем в группе.
Согласно документации MySQL, MySQL поддерживает сопоставление внешнего ключа с составными ключами. Однако для установления этой связи вам потребуется создать несколько столбцов в ссылочной таблице (группе), чтобы они соответствовали столбцам первичного ключа в ссылочной таблице (руководство).
Вот шаги по созданию Сопоставление внешнего ключа:
-- Alter the 'group' table to add the composite foreign key columns ALTER TABLE `group` ADD COLUMN `beggingTime` time NOT NULL, ADD COLUMN `day` varchar(8) NOT NULL, ADD COLUMN `tutorId` int(3) NOT NULL; -- Add the foreign key constraint ALTER TABLE `group` ADD FOREIGN KEY (`beggingTime`, `day`, `tutorId`) REFERENCES `tutorial`(`beggingTime`, `day`, `tutorId`);
Создавая три столбца внешнего ключа (beggingTime, day и tutorId) в групповой таблице, вы устанавливаете связь с составной первичный ключ в учебной таблице. Это позволяет вам объединять и извлекать данные из обеих таблиц на основе составного ключа.
Важно отметить, что хотя использование составных внешних ключей технически поддерживается, обычно вместо этого рекомендуется использовать одностолбцовый первичный ключ. Это связано с тем, что составные ключи могут повлиять на производительность и усложнить структуру вашей базы данных. Если возможно, рассмотрите возможность изменения архитектуры ваших таблиц для использования первичного ключа из одного столбца в учебнике.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3