2013-12-12 3 views
0

Я пытаюсь добавить систему комментариев, которая использует иерархический дизайн. Вот пример из моей базы данных, которая отслеживает сообщения/ответы (обратите внимание, что все больше строк добавляются как все больше людей ответа):Иерархические данные для системы комментариев

post_id | parent_id 
    1   1 
    2   1 
    3   1 
    4   2 
    5   3 
    6   2 
    7   4 

Я сделал некоторые исследования о различных методах для вывода и управление данными, чтобы получить что вам нужно, но я не уверен, какой метод лучше всего подходит для системы комментариев и как я это сделаю.

Я знаю, что списки смежности не будут работать, потому что они не могут обрабатывать глубокие деревья.

Пожалуйста, помогите.

+0

Вам действительно не нужно * глубокое дерево. Более дюжины вложенных уровней будут непригодными –

+0

@YourCommonSense Это действительно зависит от количества ответов. – Bagwell

+0

Действительно. 20 вложенных ответов были бы нечитаемыми –

ответ

-1

Судя по нынешним тенденциям, AL является вполне приемлемым решением. Все современные сайты, как правило, сбрасывают все комментарии на одной странице - это означает, что не требуется сложная логика SQL, но простой запрос для всех комментариев относится к отдельной статье. И один цикл для их хранения в массиве.

Если вам не нужны петли, но все комментарии в одном запросе уже отсортированы, тогда материализованный путь будет удобен. Я уверен, что для реализации вы можете найти множество примеров.

+0

С материализованными дорожками, если бы путь был чрезвычайно длинным (например: '1,2,3,4,5,6,7,8,9,10 ... 1000')? Как медленно это станет? – Bagwell

+0

Снова вы ошибаетесь. 1000 вложенных уровней определенно невозможно. В то время как 10-20 - довольно терпимое число. Обратите внимание, что 1,2,3 не будут работать, я верю. 000100020003 это должно быть. –

+0

или лучше конвертировать числа в base36, чтобы сократить их еще больше –

Смежные вопросы