Snook
Новичок
Nested Sets in MySQL (phpDbTree) vs. XML
Добрый день (ночь).
Вобщем у меня стал такой вопрос.
Необходимо реализовать комментарии на посты|новости|статьи (далее посты) в древовидной структуре. Т.е. чтобы было видно кто кому отвечает.
Отобрал поидее всего 2 варианта:
1. Nested sets где root элемент, первый уровень сами посты, второй и далее комментарии.
2. Обычная таблица с постами. Комментарии хранить в XML (в базе отдельной колонкой, либо на винте по файлам) соответственно с сохранением структуры
Остальные варианты как бы изврат и больше не загонялся не над чем.
Плюсы первого метода - Удобство хранения, извлечения данных.
Плюсы второго метода и тут же минус первого - Когда набирается много постов, много комментариев, таблица дерева будет иметь мноого записей. + к тому эта таблица постоянно увеличивается и увеличивается нагрузка при извлечении и изменении данных.
В случае хранения в XML, те посты которые старые они как бы и не забивают своими комментариями таблицу дерева т.к. там и не хранятся. Соответственно нагрузка со временем не так резко увеличивается как в первом случае. Думаю понятно объяснил...
Что касается недостатков второго метода то это наверно что надо каждый раз парсить XML. Но если документ будет небольшой (до 100 комментариев) то поидее должно быстро работать с использованием DOM. + К этому поидее кеш никто не отменял. В случает с dbtree тоже кеш не отменяли, но таблица то всёравно быыыстро растет. И даже вставка будет занимать много времени. Почему я так подумал про время - потому что дома у dbtree (http://dev.e-taller.net/dbtree/) лежат скрины в бенчмарками http://dev.e-taller.net/dbtree/benchmark02.png и весьма неутешительными результатами. С 1500 записями вставка занимает 12 сек. Так 1500 это 100 посто с 10-20 комментариев. А что будет когда вырастем до 10 или 10К....
Вобщем кто что думает по этому поводу и какие можете предложить решения.
Добрый день (ночь).
Вобщем у меня стал такой вопрос.
Необходимо реализовать комментарии на посты|новости|статьи (далее посты) в древовидной структуре. Т.е. чтобы было видно кто кому отвечает.
Отобрал поидее всего 2 варианта:
1. Nested sets где root элемент, первый уровень сами посты, второй и далее комментарии.
2. Обычная таблица с постами. Комментарии хранить в XML (в базе отдельной колонкой, либо на винте по файлам) соответственно с сохранением структуры
Остальные варианты как бы изврат и больше не загонялся не над чем.
Плюсы первого метода - Удобство хранения, извлечения данных.
Плюсы второго метода и тут же минус первого - Когда набирается много постов, много комментариев, таблица дерева будет иметь мноого записей. + к тому эта таблица постоянно увеличивается и увеличивается нагрузка при извлечении и изменении данных.
В случае хранения в XML, те посты которые старые они как бы и не забивают своими комментариями таблицу дерева т.к. там и не хранятся. Соответственно нагрузка со временем не так резко увеличивается как в первом случае. Думаю понятно объяснил...
Что касается недостатков второго метода то это наверно что надо каждый раз парсить XML. Но если документ будет небольшой (до 100 комментариев) то поидее должно быстро работать с использованием DOM. + К этому поидее кеш никто не отменял. В случает с dbtree тоже кеш не отменяли, но таблица то всёравно быыыстро растет. И даже вставка будет занимать много времени. Почему я так подумал про время - потому что дома у dbtree (http://dev.e-taller.net/dbtree/) лежат скрины в бенчмарками http://dev.e-taller.net/dbtree/benchmark02.png и весьма неутешительными результатами. С 1500 записями вставка занимает 12 сек. Так 1500 это 100 посто с 10-20 комментариев. А что будет когда вырастем до 10 или 10К....
Вобщем кто что думает по этому поводу и какие можете предложить решения.