Пользовательские ограничения - в базе данных или напрямую в файл? (гибкость и производительность?) - PullRequest
0 голосов
/ 23 апреля 2011

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

Изначально я только добавил лимит (40) в php-файл, но потом подумал, что будет лучше датьдля администраторов возможность изменить этот лимит, поэтому я добавил этот лимит в базу данных.Но теперь каждый раз, когда пользователь захочет отправить приглашения, будет использоваться база данных.Повлияет ли это на производительность?

Как бы вы настроили эту функцию?

Ответы [ 2 ]

2 голосов
/ 23 апреля 2011

TL; DR: просто поместите его в базу данных.:)

Полная история: Это не должно быть ударом по производительности.Все (сам пользователь, имена получателей, множество вещей с вашей страницы) будет поступать из вашей базы данных.вас это не должно волновать.

Если у вас ДЕЙСТВИТЕЛЬНО большая база пользователей, и это становится проблемой, я уверен, что есть другие места, где можно выполнять обновления производительности (например, использовать memcached для всех видов вещей).Но если вы хотите «кэшировать» его, я думаю, вы могли бы получить его один раз при входе в систему и поместить в сеанс.Используйте это значение, чтобы вычесть и проверить и т. Д., А затем ТАКЖЕ проверить один раз в базе данных (в фоновом режиме), чтобы убедиться, что для этого пользователя не происходит ничего странного.Но это может быть асинхронно и не оказывает такого большого влияния на пользовательский опыт.

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

1 голос
/ 23 апреля 2011

Это немного зависит от оборудования, но таблица 400 000 строк (10 000 * 40) не так уж велика в стандартах MySQL.Я думаю, что у вас все будет в порядке.

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

...