[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Связь таблиц в MySQL
Assmaday
О всемогущие гуру скрипта)) Возник вопрос.... Подключил к phpMyadmin модуль Designer... Он позволяет графически создавать связи между полями таблиц....

И вот возник вопрос... если я связываю таблицу "ПРЕПОДОВАТЕЛЬ" и "УЧЕБН_ПРЕДМЕТ" ...И предположим удаляю данные одного из учителей, по идее удалится поле связанной таблицы?... ну целостность бд и т.д... я прав?

Одни пишут что связывать не обязательно, можно держать связь в голове)) тем более что связываем при запросе, скриптом... Как в данном случае правильнее?
Как предпочитаете вы?
Winston
Цитата (Assmaday @ 5.06.2013 - 13:20)
И предположим удаляю данные одного из учителей, по идее удалится поле связанной таблицы?

Если используется внешний ключ, то удалится.

Цитата (Assmaday @ 5.06.2013 - 13:20)
Как в данном случае правильнее?

Правильно создать 3 таблицы: "ПРЕПОДОВАТЕЛЬ","УЧЕБН_ПРЕДМЕТ" и ПРЕПОДОВАТЕЛЬ_УП, в таблице ПРЕПОДОВАТЕЛЬ_УП 2 поля ИД_ПРЕПОДА и ИД_ПРЕДМЕТА. Поле ИД_ПРЕПОДА -> внешний ключ на таблицу ПРЕПОД, ИД_ПРЕДМЕТА -> внешний ключ на таблицу ПРЕДМЕТ. Таким образом при удалении либо препода либо предмета будет автоматически удалена запись из связующей таблицы ПРЕПОДАВАТЕЛЬ_УП. Я бы использовал этот способ.

Либо если не использовать внешние ключи, тогда нужно в скрипте позаботиться об удалении записи из связующей таблицы.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.