URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 4741
[ Назад ]

Исходное сообщение
"mysql хранение древовидной структуры"

Отправлено GHopper , 05-Мрт-07 12:58 
Здравствуйте!
Какие методы бывают, в чем сила и слабость каждого, когда какой метод лучше использовать, есть-ли готовые php-классы?
Спасибо.

Содержание

Сообщения в этом обсуждении
"mysql хранение древовидной структуры"
Отправлено GHopper , 10-Мрт-07 06:12 
неужели никого!?

"mysql хранение древовидной структуры"
Отправлено PS , 11-Мрт-07 09:38 
>неужели никого!?
В Mysql обещали поддерживать Oracle подобный синтаксис connect by prior, но пока не сделали, возможно я ошибаюсь, так что обрабатывать таблицы code, code_parent -> code в Mysql только средствами SQL затруднительно. В Oracle это без проблем.



"mysql хранение древовидной структуры"
Отправлено pavel_simple , 11-Мрт-07 20:08 
в postgresql и на sql'е можно сделать, и дополнительный модуль есть, который как раз для древовидных структур.

"mysql хранение древовидной структуры"
Отправлено A , 15-Мрт-07 08:51 
То, как хранить зависит от того, что вам надо выбирать.
Классический способ: создать одну талицу с ветвями.
create table b (id int, info char, pid int);
где id -- уникальный идентификатор ветви, info -- что угодно (что вам от ветви надо), pid -- id родительской ветки.
Найти все ветки, идущие от данной ветки
select * from b where pid=NNN;
Найти все ветки, имеющие того же родителя, что и данная
select x.* from b as x, b as y where x.pid=y.pid and y.id=NNN;
Чаще всего, ничего более сложного и не надо. 95%, что и вам этого хватит.

"mysql хранение древовидной структуры"
Отправлено BigHarry , 15-Мрт-07 15:17 
Возможно Nested Set вас устроит:
http://www.webscript.ru/stories/04/09/01/8197045