Deutsch

Mysql +PHP пару вопросов...

04.04.06 15:31
Re: Mysql +PHP пару вопросов...
 
voxel3d Aсоциальный психопат
voxel3d
в ответ Alexden 04.04.06 14:14, Последний раз изменено 04.04.06 15:36 (voxel3d)
Читать треды лень, напишу, что я использую в этом случае.
Делаю таблицу сущностей безо всяких ссылок, делаю таблицу связей, содержащую ID (сущности), ParentID и количество детей первого уровня. Для построения дерева (или части дерева, где корневым элементом будет сущность с заданным ID) читаю в память таблицу сущностей, читаю в память таблицу связей, в общем, строю два списка. Даже если таблицы огромные, за счёт того, что нет никаких джойнов всё быстро в память засасывается. Далее, допустим, в тривью отображаю всё, загоняю корневым узлом элемент из списка с заданным ID, далее находжу в таблице связей соответствующую запись. Далее в цикле (у нас есть количество детей) к узлу аналогично прицепляю дететей.
С бинарным поиском прикрученным к спискам всё очень быстро происходит без лишных поисков. Можно ещё более оптимизировать и остановиться на чтении непосредственных дететeй, и только когда пользователей откроет узел, для его детей дочитывать необходимую информацию. Для сбора статистики ветка, ессно, должна быть полностью построена.
Dropbox - средство синхронизации и бэкапа файлов.
 

Перейти на