![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
MPx |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 17.11.2005 Репутация: нет Всего: 1 |
Приветствую. 4 часа ночи, не могу додуматься...
Задача у меня: возможность добавления комментариев с неограниченной вложенностью, т.е. чтобы на любой комментарий можно добавить свой комментарий и т.д. Пример можно посмотреть допустим на этом сайте: хабр. Текущая стр-ра БД: comment_id | user_login | post_id | comment_parent | comment_rating | comment_text | comment_date comment_id - idшник коммента; user_login - кому принадлежит коммент; post_id - какому сообщению на сайте принадлежит этот комментарий; comment_parent - к какому комменту привязан; comment_rating - общий рейтинг коммента; comment_text - текст коммента; comment_date - дата. Как видите, на данный момент сделал привязку коммента к комменту. Но дело в том, что неизвестно, на каком уровне находится коммент, соответственно, неизвестно какой отступ ставить и прочее. Т.к. найти родителя допустим коммента для третьего уровня крайне сложно (можно рекурсивно конечно, но имхо это неверено с точки зрения поедания ресурсов). Что можете предложить? Добавить для коммента, который является комментом на другой коммент, поле уровня? Аля comment_level? Извините, если сумбурно объяснил. Голова ![]() Спасибо за помощь. |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
если проблема - именно в отступе, то скажи, так ли тебе надо знать "абсолютное значение порядка вложенности" или достаточно того, что "вот это - вложеннее вот того"? вообще, неясно, что тебе необходимо. в любом случае, кроме хранения идентификатора предка возможны ещё структуры nested sets(поиская в google) и materialized path(когда хранится весь список комментариев-предков для каждого комментария). соответственно, в зависимости от того, какая перед тобой стоит задача(выводишь ли ты только коммнетарии определенного комментария или все "дерево", какя информация тебе нужна для вывода - например, уровень вложенности и тому подобные вопросы, ответы на которые знаешь только ты сам), выбирается наиболее подходящая структура хранения. но даже у тебя с твоей структурой, к слову говоря, можно пользовать не рекурсивное построение дерева. если у тебя кроме mysql есть ещё язык программирования(например, PHP). смотря, как реализована рекурсия. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |