Vika7
@Vika7
вебист

Алгоритм ограничение количества записей в БД каждым пользователем в течение одного дня?

Ребята, добрый день!
Имею сервлет и БД, Пользователь после регистрации/авторизации имеет право совершить одну запись в БД в определенный промежуток времени.
Вопрос: где будет правильнее реализовать этот алгоритм, в бизнесе, в фильтре или на сервлете, и прошу объяснить как по вашему это можно реализовать реализовать?
  • Вопрос задан
  • 151 просмотр
Решения вопроса 3
@BorisKorobkov Куратор тега MySQL
Web developer
Пользователь после регистрации/авторизации имеет право совершить одну запись в БД в определенный промежуток времени... Как это можно реализовать?

Капитан очевидность подсказывает:
1. посчитать кол-во записей этого юзера за определенный промежуток времени
2. сравнить с 1
Ответ написан
Комментировать
@poslannikD
Java/C/C++ Programmer
Тут многое зависит от вашего приложения, я не буду давать совета, но просто выскажу мнение на счет некоторых вариантов решения.
1) Фильтрация на уровне бизнес-логики. Это самое здравое решение с точки зрения архитектуры.
2) Фильтрация на уровне сервлета. Реализовать технически можно, но уже с точки зрения архитектуры будет смотреться не очень. Сервлет (не равен) логике приложения, поэтому логику следует реализовывать в другом месте, а сервлет предназначен совсем для других целей.
3) Фильтрация на уровне Фильтра. ИМХО это жесть) Ибо фильтры задумывались для чего-то другого.(См https://jsehelper.blogspot.com.by/2016/01/jsp-serv... пункт что вы знаете о сервлет фильтрах).
4) Реализация на "клиенте" с помощью JavaScript. Технически можно, но не нужно ибо это совсем некрасиво с точки зрения архитектуры.

Реализация алгоритма проста. Проверяете условия для занесения записи в бд, если все ок. Заносите запись в бд. Если не ок, запись в бд не попадает, вот и все)))
Ответ написан
Комментировать
@azShoo
Я бы сказал, что такое ограничение - часть бизнес логики, и должно реализовываться на уровне приложения.
Т.е. на уровне интерфейса с дополнительной валидацией на server-side.
На уровне базы это ограничивать - попахивает безумием.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы