Xwab
Форумыnavigate_nextПрограммирование на PHP

Связанные таблицы
Сообщения
Чилавек

Всем добрый день! Вопрос насчет связанных таблиц/записей в MySQL. В общем есть примерно такая логическая иерархия таблиц в скрипте/БД, как на рисунке..) Все таблицы существуют, ну типа обновляются и т.д отдельно, независимо друг от друга, НО, если удалить например из таблицы UNI запись, надо чтоб автоматически удалялись все логически связанные записи. Ну как например удаляешь папку, и удаляются все подпапки. Надо как то эту логическую связь сделать. Вопрос возможно ли такое и как?

19 Июн 2011, 8:13
Sandr

Чилавек, возможно. Удаляешь с условием что-то вроде WHERE `id_corp`='значение id_uni'

19 Июн 2011, 9:04
aBSuRD

InnoDB + FOREIGHT KEY
http://www.scabbiaza.net/innodb.html

19 Июн 2011, 9:27
Akdmeh

1, хочу похвалить тебя, если ты делаешь такие таблицы всегда - хорошо организовывает в плане структуры кода. Я когда был молод, тоже так делал, правда в тетрадке - очень помогало.
добавлено спустя 5 минут:
Ламерский вопрос - а если я удалю раздел форума, в котором есть 2 подразделы, а них темы, а в темах - посты, и все это будет связанно внешними ключами, то будет ли удаляться рекурсивно, или надо сначала посты, затем темы и т.д.? Тип связки будет CASCADE

19 Июн 2011, 9:36
Чилавек

Akdmeh, 1, хочу похвалить тебя, если ты делаешь такие таблицы всегда - хорошо организовывает в плане структуры кода. Я когда был молод, тоже так делал, правда в тетрадке - очень помогало. - это не совсем понял. то ли сарказм то ли еще что.

Насчет примера с разделами форума это ты очень точно пример привел. Только у меня вложенность большая..) А на форуме, например, можно указать к сообщению и номер темы и номер п/ф. это не будет нагрузкой. а у меня вложенность большая

19 Июн 2011, 10:35
DarkMaster

Триггеры

19 Июн 2011, 10:37
Akdmeh

5, это не сарказм. Такие таблицы очень хорошо помогают организовать структуру базы данных.
Так что молодец!

19 Июн 2011, 10:54
Чилавек

Akdmeh, ну да. Удобно бывает и в мозгу когда вспоминаешь таблы, и в коде, и на тетради. Но вот проблема с удалением "вложенных" записей..) Как на картинке. 3 три уровня могу определить. Вот например мне известен только ид первого уровня. могу узнать вторые. ну с натяжкой третий уровень. то что дальше приходится в цикле. а запросы в цикле, э
то ужас. нужно как то по другому. вот я увидев в phpMyAdmin функцию про связанные таблицы и создал тему. Кто нибудь скажите как в табл типа MyISAM сделать такое

19 Июн 2011, 11:17
Replikon

Гугли пост 3.
Насчет большой вложенности не парься.
У меня в блоге категории, в них статьи, у статей комменты.
Во время удаления категории удаляются все статьи с их комментами.
И происходит лишь 1 запрос - на удаление категории. Все остальное удаляется автоматически.
Внешние ключи - это сила.

19 Июн 2011, 11:29
Чилавек

Приведите пожалуйста пример на этих таблицах, как я должен связать таблицы:

Табл uni:
id | name

Табл corp:
id | name | id_uni

Табл fak:
id | name | id_corp

Табл spec:
id | name } id_fak

19 Июн 2011, 12:09
Ответить на тему