|
|
|
| Проблема такова:
есть таблица, в которой три поля: ID, pID, name
ID-первичный ключ
pID-внешний ключ, указывающий на поле ID этой же таблицы, т.е. рекурсивный внешний ключ
name- имя записи
такая таблица по моей идее описывает древовидную структуру категорий.
т.е. некоторые категории могут быть вложены в какую то более глобальную категорию и та в свою очередь- в другую, еще более гловальную категорию..
Другой пример -каталоги на диске.
pID указывает ID родительского каталога
если pID=NULL, то значит категодия/каталог находятся в корне
сама структура меня устраивает,
но в процессе написания сторед процедур, я сторкнулся с проблемой, что нужно получить одним списком все подкатегории данной категории, включая вложенные...
т.е. например:
есть категория А
в ней есть категории Б и В
в категории Б есть категория Г
в категории В есть категории Д, Е, Ж
надо получить все подкатегории А, то результат:
Б, В, Г, Д, Е, Ж
если надо получить подкатегории В, то получим:
Д, Е, Ж
Если подкатегории Б, то получим пустое множество
Есть идеи, как это реализовать?
Я пишу на Дельфи, и средствами дельфи сделать это очень просто
но хотелось бы выжать из мускула максимум.. и в приложении оставить минимум..
Заранее спасибо! | |
|
|
|
|
|
|
|
для: arseny
(15.02.2008 в 15:34)
| | >сама структура меня устраивает,
>но в процессе написания сторед процедур, я сторкнулся с проблемой, что нужно получить одним >списком все подкатегории данной категории, включая вложенные...
такое представление (adjacency list) не позволяет получить одним списком все подкатегории данной категории, включая вложенные, для этого есть другие представления (nested sets к примеру) | |
|
|
|
|
|
|
|
для: Trianon
(15.02.2008 в 17:25)
| | поясни.
Где информацию по этим list'ам взять? | |
|
|
|
|
|
|
|
для: arseny
(15.02.2008 в 17:53)
| | поиском в google | |
|
|
|