несколько ответов и здесь может возникнуть неопределенность, чтобы избежать ее, необходимо хранить ссылку на родительское сообщение, т. е. на то, для которого текущее сообщение является ответом. Для создания такой схемы хранения потребуется определить следующие параметры:
postid - идентификатор сообщения; должен быть уникальным;
poster - автор сообщения;
parent - идентификатор родительского сообщения (такой же postid);
title - заголовок;
posted - время и дата публикации сообщения;
message - содержимое. 12
Для того чтобы выяснить имеются ли ответы на сообщение, необходимо выполнить запрос для поиска других сообщений, для которых данное является родительским. Запрос потребуется выполнить для каждого сообщения, а это снижает производительность форума. С целью повышения быстродействия можно добавить поле с информацией о наличии хотя бы одного ответа. Это поле будет называться children и иметь логический тип данных, его значение будет равно 1, если для сообщения есть ответы, и 0, если ответов нет. При реализации подобного решения во время добавления/удаления дочернего сообщения потребуется также обновить и родительское, изменив значение его поля children.
Так как содержимое сообщения имеет текстовый тип данных, его наличие в таблице с сообщениями может замедлить выполнение SQL - запросов. Поэтому для дополнительной оптимизации содержимое сообщения необходимо хранить в отдельной таблице, отдельно от остальных данных. Благодаря такому подходу содержимое сообщения можно будет загружать именно тогда, когда пользователь решит просмотреть его.
В MySQL поиск записей фиксированного размера выполняется быстрее, чем переменного и при использовании данных переменной длины обязательно нужно организовать индексы, которые будут задействовать
Страницы: << < 5 | 6 | 7 | 8 > >>