我在数据库中有一列,其中保存了有关用户执行的搜索的一些详细信息(搜索到的数据和时间戳)。我必须实施限制,每天只能执行10次搜索。然后计数器应在午夜重置。
每次发出请求时,我都需要检查数据库(MSSQL)中是否已经保存了10个搜索。如果达到限制,则在控制器中返回4xx响应。
我正在考虑每次发出请求时都更新数据库中的搜索列表,并从上一天开始删除带有时间戳的记录。但是我认为从性能的角度来看,这不是最佳的解决方案。
实现它的最佳方法是什么?
答案 0 :(得分:0)
为什么不只使用计数查询?
import csv
with open(input_file_path, 'rU') as csv_file:
rows = csv.DictReader(csv_file, delimiter=',')
for row in rows:
print row
使用select count(*)
from t
where t.user_id = ? and
t.search_datetime >= convert(date, getdate())
上的索引,这应该很快。
否则,您需要编写一个触发器(或类似机制)来维护一个计数,并为每次可能的搜索检查该计数。