Связь между двумя таблицами. SQL - MySQL
Формулировка задачи:
Существует две таблицы для гостевой книги. Одна собственно для формы отправки сообщения,другая содержит категории,которые выбирает в форме пользователь.Создавлось всё через пхпмайадмин,Как эту вот.... Связать грамотно,а то банально не помню как это делается.
CREATE TABLE `kat` ( `id_kat` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, `name_kat` VARCHAR(55) NOT NULL, )ENGINE=MyISAM DEFAULT CHARSET=cp1251; CREATE TABLE `gosttab` ( `id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `id_kat` INT(10) NOT NULL, `name_kat` VARCHAR(55) NOT NULL, `name` VARCHAR( 255 ) NOT NULL , `email` VARCHAR( 255 ) NOT NULL , `otz` TEXT NOT NULL , `page` VARCHAR( 255 ) NOT NULL , `date` VARCHAR( 255 ) NOT NULL, KEY `id_kat`(`id_kat`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; INSERT INTO `kat` (`id_kat`, `name_kat`) VALUES (NULL, 'Музыка'), (NULL, 'Литература'), (NULL, 'Политика'), (NULL, 'Религия'), (NULL, 'История'), (NULL, 'Игры'), (NULL, 'Культура'), (NULL, 'Интернет'), (NULL, 'Искусство');
Решение задачи: «Связь между двумя таблицами. SQL»
textual
Листинг программы
ALTER TABLE `gosttab` ADD CONSTRAINT `fk_gosttab_kat` FOREIGN KEY (`id_kat`) REFERENCES `kat`(`id_kat`)
Объяснение кода листинга программы
ALTER TABLE- это команда для изменения таблицы в базе данных.gosttab- название таблицы, которую мы изменяем.ADD CONSTRAINT- это команда для добавления ограничения (связи) в таблицу.fk_gosttab_kat- это имя ограничения, которое мы добавляем.FOREIGN KEY- это ключевое слово, указывающее, что поле в таблице является внешним ключом.id_kat- это название поля в таблицеgosttab, которое будет связано с полемid_katв таблицеkat.REFERENCES- это ключевое слово, указывающее, что поле ссылается на поле в другой таблице.kat- название таблицы, с которой мы связываем таблицуgosttab.id_kat- это название поля в таблицеkat, которое будет связано с полемid_katв таблицеgosttab. В результате выполнения этого кода в таблицеgosttabбудет добавлено ограничение (связь), которое будет гарантировать, что значение поляid_katв таблицеgosttabвсегда будет ссылаться на существующее значение поляid_katв таблицеkat.