Дизайн базы данных форума - PullRequest
0 голосов
/ 17 февраля 2012

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

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

Я не уверен, что это хороший дизайн - хранить все эти сообщения в одной большой таблице, хотя это звучит интуитивно для меня. может мне стоит отделить темы от ответных сообщений?

в заключение, Какова лучшая практика в проектировании БД для системы форумов? Я хочу следовать образцу лучшей практики и сделать это один раз.

поэтому я буду признателен за вашу помощь. спасибо, sock.socket:)

1 Ответ

0 голосов
/ 17 февраля 2012

Если на какой-либо ответ можно ответить (отдельно от исходного потока), то таблица с собственной ссылкой действительна.Вы можете найти точно такую ​​же вещь в любой многоуровневой иерархии, например, сотрудники и менеджеры.

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

Поэтому будьте осторожны, чтобы убедиться, что у вас есть хорошие индексы для столбцов MessageID и RespondTo, чтобы помочь при присоединении.

...