我有一个简单的网络应用程序,我想限制用户使用我的应用程序的时间。
基本上我的应用程序会生成一些报告,所以我应该计算他们在一个月内生成了多少报告。
我正在考虑创建一个数据库表,在其中存储月份和生成报告的次数。每次用户生成报告时,脚本都会检查月份以查看是否是当前月份,如果是当前月份,它会增加次数。相反,如果当前月份不同,它将时间计数设置为 0。
这是一个好的起点吗?还是我应该做得更好?
我有一个简单的网络应用程序,我想限制用户使用我的应用程序的时间。
基本上我的应用程序会生成一些报告,所以我应该计算他们在一个月内生成了多少报告。
我正在考虑创建一个数据库表,在其中存储月份和生成报告的次数。每次用户生成报告时,脚本都会检查月份以查看是否是当前月份,如果是当前月份,它会增加次数。相反,如果当前月份不同,它将时间计数设置为 0。
这是一个好的起点吗?还是我应该做得更好?
如果是当月,如果是当月,则增加次数。相反,如果当前月份不同,它将时间计数设置为 0。
当用户在大约 1 年后生成报告时,您将错过边缘情况。假设他在 2012 年 10 月生成了 5 次报告,然后尝试在 2013 年 10 月生成报告,那么他的计数器从 5 开始,而不是当前场景中的 0。
我假设您正在使用两个字段来存储当前的信息(一个字段用于月份,另一个用于计数)。
所以现在,包括年份在内,您将需要 3 个字段。
要优化字段数量,您可以将日期保存为当月的第一天(总共 2 个字段)。
为了进一步减少字段的数量,您可以将信息保存在一个字段中 - 保存一个整数,例如yymmxx
,其中 yy 是年份,mm 是月份,xx 是尝试次数。
在这种方法中,要找出以前的尝试次数,您需要 do field % 100
,如果当前月份相同,则需要检查field/100 == yy*100 + mm