Можно ли использовать COUNT-запросы? - PullRequest
0 голосов
/ 21 ноября 2018

Можно ли использовать количество строк в результате, возвращаемом запросом (функция COUNT() в MySQL) для любых проверок и т. Д.
Например, если я хочу проверить, сколькосообщений, которые пользователь создал сегодня, чтобы проверить, может ли он создать другой (другими словами, достиг ли пользователь своего дневного лимита), это хорошая практика, просто отправлять запрос, подобный этому

SELECT COUNT(post_text) FROM posts WHERE (date_published = CURDATE() AND userId = 115);

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

1 Ответ

0 голосов
/ 21 ноября 2018

Если у пользователя есть дневные лимиты, то вы, вероятно, захотите сделать эту проверку в базе данных.

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

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

SELECT COUNT(*)
FROM posts p
WHERE p.date_published = CURDATE() AND p.user_id = ?;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...