Как реализовать вложенную систему комментариев? - PullRequest
8 голосов
/ 12 марта 2011

Что было бы идеальным способом для реализации такого рода вещей?Идея, которая сейчас у меня в голове, состоит в том, чтобы иметь таблицу комментариев и каждый комментарий должен иметь идентификатор потока и идентификатор родительского комментария.Идентификатор потока будет указывать, к какому потоку принадлежит комментарий, и будет позволять простой оператор MySQL с использованием предложения WHERE.Каждый комментарий будет иметь идентификатор auto_increment в соответствии с обычным дизайном базы данных, а столбец родительского идентификатора будет указывать, для какого комментария этот комментарий является дочерним.потому что это был бы только один вызов SQL, чтобы получить все комментарии из потока.Другая реализация, которую я обнаружил, имела SQL-запрос для каждого уровня вложенности.Это решение будет создавать нагрузку на стороны SQL.

Как бы SO реализовал это?В настоящее время я в растерянности, потому что я не уверен, какое решение является «лучшим» решением, и я все еще новичок в разработке баз данных, PHP и JQuery.

Спасибо.

1 Ответ

6 голосов
/ 12 марта 2011

Посмотрите на Управление иерархическими данными в MySQL , в частности, раздел под названием «Модель вложенного набора».Возможно, вам придется прочитать его несколько раз, прежде чем оно станет понятным (я понял), но оно того стоит.Это очень эффективный способ работы с вложенными данными и извлечения нужных деталей только одним запросом.

С другой стороны, для обновлений вам придется выполнять гораздо больше работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...