Создание связей в базе данных - MySQL
Формулировка задачи:
Здравствуйте! Пожалуйста, помогите мне с одной проблемой. Значит, мне нужно создать базу данных, где будут храниться регионы, города и районы городов.
Я создал все 3 таблицы, но вот тут такая проблема: как мне связать эти таблицы так, чтобы регионы содержали города, а в городах содержались районы городов? Я так понимаю это можно сделать, манипулируя связями между таблицами, но я их даже создать не могу! Или это с внешними ключами нужно играться? Я не очень то чайниковый в MySQL, но в Workbanch очень мало что понимаю.
Интернет обшарил и толковый подробный гайд так и не нашел.
Стою на проблеме 2-ой день. Может что посоветуете? Буду наимоверно благодарен.
Решение задачи: «Создание связей в базе данных»
textual
Листинг программы
CREATE TABLE regions ( region_id INT NOT NULL PRIMARY KEY, region_title VARCHAR(150) ); CREATE TABLE city ( city_id INT NOT NULL PRIMARY KEY, region_id INT NOT NULL, city_name VARCHAR(150) ); CREATE TABLE rayon ( rayon_id INT NOT NULL PRIMARY KEY, city_id INT NOT NULL, rayon_name VARCHAR(150) ); ALTER TABLE city ADD CONSTRAINT fk_city_region FOREIGN KEY (region_id) REFERENCES regions (region_id); ALTER TABLE rayon ADD CONSTRAINT fk_rayon_city FOREIGN KEY (city_id) REFERENCES city (city_id);
Объяснение кода листинга программы
- Создание таблицы
regionsс полямиregion_idиregion_title. - Создание таблицы
cityс полямиcity_id,region_idиcity_name. - Создание таблицы
rayonс полямиrayon_id,city_idиrayon_name. - Добавление ограничения внешнего ключа для поля
region_idв таблицеcity, чтобы указать, что это поле должно ссылаться на полеregion_idв таблицеregions. - Добавление ограничения внешнего ключа для поля
city_idв таблицеrayon, чтобы указать, что это поле должно ссылаться на полеcity_idв таблицеcity.