Предложения по дизайну форума - PullRequest
2 голосов
/ 25 июля 2010

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

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

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

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

У кого-нибудь есть лучшее предложение / решение?

Спасибо.

1 Ответ

1 голос
/ 25 июля 2010

Вы можете хранить отдельную таблицу базы данных, чтобы вести запись для каждой темы X для каждого пользователя, если пользователь прочитал ее (нет записи, если пользователь не прочитал), а затем автоматически предположить, что через 30 дней тема прочитана, что позволяет обрезать эту таблицу, чтобы предотвратить чрезмерный рост. Ведение отдельной таблицы, подобной этой, является довольно стандартной практикой, и, если этот форум не пользуется большой популярностью (я полагаю, всегда планируйте популярность), я сомневаюсь, что вы столкнетесь с ограничениями пространства или процессора.

Например, таблица topics_read имеет поля user_id, topic_id и when. Хранение двух строк и даты занимает всего несколько байтов для каждой строки.

...