Mysql удалить потомков - PullRequest
       9

Mysql удалить потомков

0 голосов
/ 13 июня 2011

У меня есть таблица изображений, и у этих изображений будут различные потомки, такие как миниатюры, версии разных размеров, и кадрирование (и превью этих культур) и т. Д.

Это означает, что каждое исходное изображение потенциально может иметь довольно много потомков. На этих потомков ссылается поле parent_id, в котором указывается прямой родитель.

Каков будет лучший и самый эффективный способ сделать это, так как очевидно, что выбор всех дочерних элементов для каждого изображения / уровня и последующее их удаление будет довольно трудоемким, если есть пакетное удаление изображений?

Ответы [ 2 ]

1 голос
/ 13 июня 2011

То, на что вам нужно обратить внимание ... это каскадное удаление.

Эта статья с сайта MySQL должна вам помочь.

http://dev.mysql.com/tech-resources/articles/mysql-enforcing-foreign-keys.html

1 голос
/ 13 июня 2011

Используйте внешние ключи InnoDB - и связывайте parent_id с идентификатором с помощью опции каскадного удаления

Или используйте различные древовидные индексы, чтобы избежать рекурсии.Например, модель вложенного набора, как описано в Управление иерархическими данными в MySQL .

...