Forum Webscript.Ru
Программирование => PHP => Тема начата: Vad от 15 Октября 2002, 16:28:43
-
Как наиболее разумна организовать деревовидную структуру с тремя уровнями вложенности
нужно для каталога типа
город - район - улица
если можно с примером. Самое главное как это дело выводить
-
А это смотря что ты собираешься делать с такой БД.
-
Для работы с деревьями хороша эта библиотека
http://dev.e-taller.net/dbtree/SQLTreesRus.tar.gz + http://dev.e-taller.net/dbtree/phpDbTree.zip
-
И как собираешься выводить
Например
$ARR["aaaa.bbbb.cccc"]="dddd";
aaaa, bbb, ccc - это твоя вложенность ;)
-
Я не понимаю, о каких деревьях речь. Почитайте внимательнее вопрос.
Vad
Тебе нужно 3 таблицы
1) town (id int, name varchar(30))
2) district (id int, town_id int, name varchar(30))
3) street (id int, district_id int, name varchar(30))
Если одна улица может быть в нескольких райнах, то потребуется таблица связности. Если не знаешь что это такое, то тебе прежде всего надо учить теорию реляционных баз данных, а не программы писать...
-
Реляционные базы данных я знаю но я думал что хранить такие веши правильней в одной таблице поправте меня если я ошибаюсь. мне важна скорость
-
Vad
Не очень ясно для чего здесь вообще дерево, но вариант Доктора ИМХО вполне подходящий и используется очень часто.
И не обязательно все данные в одну таблицу запихивать.
+ тебе уже дали ссылку на dbtree.php где реализован алгоритм Nested Sets. С ним тоже можно что-то придумать.
Поэтому либо опиши проблему полностью, либо сам по предложеной информации решай ее
-
Реляционные базы данных я знаю но я думал что хранить такие веши правильней в одной таблице поправте меня если я ошибаюсь. мне важна скорость
Не-е-т видимо на самом деле ты не знаешь ни про реляционные ни про иерархические в достаточной мере чтоб создавать их.
Такие вещи ни по логике вещей ни с точки зрения скорости никогда не было и не будет правильней. Видел я одного такого чудака - у него несколько сотен файлов в папке Мои документы и картинки и музыка и видио и все на свете.