Система комментариев является важной частью веб-сайта интернет-сообщества и имеет большое значение для расширения участия пользователей и повышения активности веб-сайта. К основным функциям системы комментариев в основном относятся: пользователи оставляют комментарии, читают комментарии, отвечают на комментарии и т. д. (Современные системы комментариев могут также включать в себя сортировку, фильтрацию, поиск и другие функции).
Чтобы улучшить взаимодействие с пользователем системы комментариев, система комментариев должна иметь хорошую структуру отображения и дизайн хранилища для поддержки одновременного доступа большого количества пользователей и большого объема хранилища данных. В этой статье будут представлены три распространенные цены на отображение систем комментариев и схемы их хранения:
Линейная структура, также известная как плоская структура или линейная структура, — это самый простой и распространенный способ отображения комментариев. В этой структуре комментарии расположены в хронологическом порядке: самые новые комментарии располагаются вверху или внизу, в зависимости от дизайна сайта. Каждый комментарий независим и не иерархичен с другими комментариями. Эта структура проста и понятна, ее легко реализовать и понять.
Основными характеристиками линейной структуры являются: простая структура и удобство просмотра; она не поддерживает подробные беседы, поскольку ответы не могут быть напрямую связаны с конкретными комментариями; она подходит для сценариев, когда бесед мало или беседы неважны;
Линейно структурированная система комментариев подходит для сценариев, где диалог не является основной целью или где пользователей больше интересует свежий контент. Например, на новостных сайтах, сайтах блогов и т. д. пользователи обычно уделяют больше внимания самой статье, а не комментариям других пользователей. Они могут просматривать последние комментарии, но с меньшей вероятностью будут погружаться в их обсуждение.
Другой пример — обзоры продуктов на сайтах электронной коммерции. Пользователи обычно просматривают последние обзоры или самые полезные обзоры, не обращая внимания на диалог между обзорами. Таким образом, для удовлетворения потребностей достаточно линейно структурированной системы комментариев.
Структура линейного отображения комментариев имеет относительно простую структуру хранения из-за сложной взаимосвязи ответов на комментарии.
Независимо от кэширования и другой логики, вы можете обратиться к следующему дизайну таблицы.
Имя поля | тип данных | описывать |
---|---|---|
comment_id | INT | Уникальный идентификатор комментария, обычно возрастающее целое число. |
user_id | INT | Уникальный идентификатор пользователя, разместившего комментарий. |
content | TEXT | Текстовое содержание комментария. |
post_time | TIMESTAMP | Время публикации комментария можно использовать для сортировки комментариев. |
target_id | INT | Уникальный идентификатор человека, которому посвящен комментарий, например статьи, продукта или другого пользователя. |
reply_to_id | INT | Уникальный идентификатор комментария, на который был дан ответ или процитирован. Это поле может быть пустым, если данный комментарий не является ответом или ссылкой на другой комментарий. |
Вложенная (деревовидная) структура комментариев — это распространенный способ организации онлайн-комментариев, который позволяет пользователям отвечать под комментариями других пользователей, образуя иерархическую структуру беседы. Эту структуру часто визуализируют в виде дерева, где корневым узлом является исходное сообщение, а каждый дочерний узел является ответом родительскому узлу.
К особенностям вложенных структур комментариев относятся:
Вложенные (деревовидные) структуры комментариев подходят для многих сценариев онлайн-взаимодействия, особенно тех, которые требуют углубленных обсуждений и многоуровневых разговоров.
Вот несколько сайтов, использующих вложенные древовидные структуры.
Существует два основных подхода к типичному проектированию хранилища для древовидных структур просмотра: модель списка смежности и модель перечисления путей.
Двухуровневая структура вложенных комментариев — это распространенный способ организации онлайн-комментариев, который позволяет пользователям комментировать тему, а также отвечать на комментарии других пользователей.
Эта структура обычно принимает форму основного комментария (также называемого корневым комментарием или комментарием верхнего уровня), за которым следует ряд подкомментариев. Ответы на дочерние комментарии представляют собой скорее ссылочные отношения, чем отношения «родитель-потомок». Все их родительские узлы являются основными комментариями.
Основное преимущество этой структуры заключается в том, что она позволяет легко отслеживать и организовывать ветки обсуждений, что облегчает пользователям понимание и участие в обсуждении. При этом уровень комментариев ограничен, чтобы пользователи не были слишком погружены во взаимодействие комментариев и не возвращались к теме.
Двухуровневая структура вложенных комментариев широко используется в различных интернет-сообществах, форумах, блогах и новостных сайтах. Она позволяет пользователям комментировать темы, а также отвечать на комментарии других пользователей (ответы на комментарии первого уровня представлены родительским элементом). -дочерние узлы). Формат организации, ответы на второстепенные комментарии организованы в плоском порядке).
Большинство отечественных сообществ, форумов и видеосайтов используют эту двухуровневую структуру вложенных комментариев.
Field | Type | Description |
---|---|---|
comment_id | INT | Уникальный идентификатор каждого отзыва, первичный ключ |
parent_id | INT | comment_id родительского комментария каждого комментария. Для комментариев первого уровня это поле имеет значение NULL. |
topic_id | INT | Идентификатор темы, к которой относится каждый комментарий |
content | TEXT | Содержание комментария |
user_id | INT | Идентификатор пользователя, разместившего комментарий |
post_time | TIMESTAMP | Время публикации комментария |
reply_to_id | INT | Уникальный идентификатор вторичного комментария, на который был дан ответ или который был процитирован. Это поле может быть пустым, если данный комментарий не является ответом или ссылкой на другой комментарий. |