Производительность системы голосования (с учётной записью) реализована с использованием Mysql + PHP - PullRequest
1 голос
/ 17 мая 2011

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

id | comment_id | voter_id | voter_option 

Итак, как только пользователь проголосует, запись будет сохранена в базе данных mysql в указанном выше формате, поэтому я делаю это потому, что не хочуПользователь должен проголосовать и захотеть записать, что ему нравится / не нравится.

Мой вопрос, я думаю, если на моем веб-сайте есть 10 000 комментариев, и каждый из них получил 1000 голосов, моя база данных становится оченьбольшой, есть ли хороший метод (например, может быть), чтобы предотвратить слишком большой базы данных?Или мне нужно создать таблицу для каждого комментария в моем случае, спасибо заранее.

1 Ответ

2 голосов
/ 18 мая 2011

Как выглядит ваша таблица комментариев?База данных станет большой, только если будет много постов, 10 000 записей в таблице - это childsplay для mysql, если вы правильно сделаете запрос, а ваша таблица имеет нормальный размер./ не нравится комментарий, вы подсчитываете все голоса и сохраняете это значение в строке комментария. Таким образом, когда вы запрашиваете комментарий, у вас будет последний известный счет как / не нравится, и вам не придется делать это подсчеткаждый раз, когда вы запрашиваете комментарии.

Редактировать: я должен добавить, что ваши индексы должны быть целочисленными (судя по именам столбцов), и вы используете внешние ключи для ограничения данных.С помощью внешних ключей вы можете поддерживать чистоту своих таблиц, например, если кто-то удаляет комментарий, вы можете указать своим таблицам удалить каскад, основываясь на этом идентификаторе, чтобы комментарий удалялся, все голоса за этот комментарий удаляются из другого.Таблица.http://en.wikipedia.org/wiki/Foreign_key

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