Автор Тема: построение деревовидной структуры  (Прочитано 3791 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vad

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 54
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.revision.gr
построение деревовидной структуры
« : 15 Октября 2002, 16:28:43 »
Как наиболее разумна организовать деревовидную структуру с тремя уровнями вложенности
нужно для каталога типа
город  - район - улица
если можно с примером. Самое главное как это дело выводить

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
построение деревовидной структуры
« Ответ #1 : 15 Октября 2002, 16:34:35 »
А это смотря что ты собираешься делать с такой БД.
TANSTAAFL

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
построение деревовидной структуры
« Ответ #2 : 15 Октября 2002, 18:18:16 »
Для работы с деревьями хороша эта библиотека
http://dev.e-taller.net/dbtree/SQLTreesRus.tar.gz + http://dev.e-taller.net/dbtree/phpDbTree.zip
После трех дней без программирования жизнь становится бессмысленной.

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
построение деревовидной структуры
« Ответ #3 : 15 Октября 2002, 18:34:54 »
И как собираешься выводить

Например

$ARR["aaaa.bbbb.cccc"]="dddd";

aaaa, bbb, ccc - это твоя вложенность  ;)
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн Доктор

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 487
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
построение деревовидной структуры
« Ответ #4 : 16 Октября 2002, 00:24:03 »
Я не понимаю, о каких деревьях речь. Почитайте внимательнее вопрос.

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

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 54
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.revision.gr
построение деревовидной структуры
« Ответ #5 : 16 Октября 2002, 20:41:25 »
Реляционные базы данных я знаю  но я думал что хранить такие веши правильней в одной таблице поправте меня если я ошибаюсь. мне важна скорость

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
построение деревовидной структуры
« Ответ #6 : 16 Октября 2002, 23:30:39 »
Vad
Не очень ясно для чего здесь вообще дерево, но вариант Доктора ИМХО вполне подходящий и используется очень часто.
И не обязательно все данные в одну таблицу запихивать.

+ тебе уже дали ссылку на dbtree.php где реализован алгоритм Nested Sets. С ним тоже можно что-то придумать.
Поэтому либо опиши проблему полностью, либо сам по предложеной информации решай ее
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн rembo

  • Больной
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.v4.ru
построение деревовидной структуры
« Ответ #7 : 17 Октября 2002, 06:21:09 »
Цитировать
Реляционные базы данных я знаю но я думал что хранить такие веши правильней в одной таблице поправте меня если я ошибаюсь. мне важна скорость

Не-е-т видимо на самом деле ты не знаешь ни про реляционные ни про иерархические в достаточной мере чтоб создавать их.
Такие вещи ни по логике вещей ни с точки зрения скорости никогда не было и не будет правильней. Видел я одного такого чудака - у него несколько сотен файлов в папке Мои документы и картинки и музыка и видио и все на свете.
программист должен все сделать так, чтоб потом ничего не делать

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28