Всем добрый день! Вопрос насчет связанных таблиц/записей в MySQL. В общем есть примерно такая логическая иерархия таблиц в скрипте/БД, как на рисунке..) Все таблицы существуют, ну типа обновляются и т.д отдельно, независимо друг от друга, НО, если удалить например из таблицы UNI запись, надо чтоб автоматически удалялись все логически связанные записи. Ну как например удаляешь папку, и удаляются все подпапки. Надо как то эту логическую связь сделать. Вопрос возможно ли такое и как?
19 Июн 2011, 8:13Чилавек, возможно. Удаляешь с условием что-то вроде WHERE `id_corp`='значение id_uni'
19 Июн 2011, 9:041, хочу похвалить тебя, если ты делаешь такие таблицы всегда - хорошо организовывает в плане структуры кода. Я когда был молод, тоже так делал, правда в тетрадке - очень помогало.
добавлено спустя 5 минут:
Ламерский вопрос - а если я удалю раздел форума, в котором есть 2 подразделы, а них темы, а в темах - посты, и все это будет связанно внешними ключами, то будет ли удаляться рекурсивно, или надо сначала посты, затем темы и т.д.? Тип связки будет CASCADE
Akdmeh, 1, хочу похвалить тебя, если ты делаешь такие таблицы всегда - хорошо организовывает в плане структуры кода. Я когда был молод, тоже так делал, правда в тетрадке - очень помогало. - это не совсем понял. то ли сарказм то ли еще что.
Насчет примера с разделами форума это ты очень точно пример привел. Только у меня вложенность большая..) А на форуме, например, можно указать к сообщению и номер темы и номер п/ф. это не будет нагрузкой. а у меня вложенность большая
5, это не сарказм. Такие таблицы очень хорошо помогают организовать структуру базы данных.
Так что молодец!
Akdmeh, ну да. Удобно бывает и в мозгу когда вспоминаешь таблы, и в коде, и на тетради. Но вот проблема с удалением "вложенных" записей..) Как на картинке. 3 три уровня могу определить. Вот например мне известен только ид первого уровня. могу узнать вторые. ну с натяжкой третий уровень. то что дальше приходится в цикле. а запросы в цикле, э
то ужас. нужно как то по другому. вот я увидев в phpMyAdmin функцию про связанные таблицы и создал тему. Кто нибудь скажите как в табл типа MyISAM сделать такое
Гугли пост 3.
Насчет большой вложенности не парься.
У меня в блоге категории, в них статьи, у статей комменты.
Во время удаления категории удаляются все статьи с их комментами.
И происходит лишь 1 запрос - на удаление категории. Все остальное удаляется автоматически.
Внешние ключи - это сила.
Приведите пожалуйста пример на этих таблицах, как я должен связать таблицы:
Табл uni:
id | name
Табл corp:
id | name | id_uni
Табл fak:
id | name | id_corp
Табл spec:
id | name } id_fak