php的一个时间段限制
场景:
用户前台有一个添加单日数据的按钮,每天只允许上传2个时间段的数据,一次是当日0点到12点,一次是18点到24点。
不在这两个时间段内均不允许提交,且2个时间段内只允许提交一次。
问题:
请问该如何设计表,如何判断用户提交的时间段内数据库内是否有对应记录?
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
自己摸索了一上午,写了一个能运行的方案。
能达到预期的效果,但不知道有没有未知的BUG。
哪位大神还有比较好的方案可以改进下吗?
暂时没有想到其他好的解决办法,提供一个思路抛砖引玉
其中$result就是去数据库取有没有限制时间内的数据,我这里写了一段伪代码
记录数据的表里需要有一列created_at记录这条记录的创建时间。
这个问题分为两个方面来处理:
1.表单提交的disable/enable :
前段根据时间做处理按钮,后端增加中间件来根据时间过滤掉请求
2.数据库设计及操作:
除了业务字段外,增加一个hash字段,设置为unique 的约束条件。
数据入库前计算一下当前数据的hash值,一并插入数据库,如果重复提交了,会有报错。
hash函数应该能够根据当前时间输出两个不同的值(且输出范围只有这两个值,对应你的两个时间段),再将当前时间的年-月-日+hash函数输出值合并,作为hash字段一并插入数据库。
这样一天内,如果两个时间段都传过数据了,就无法再次插入新数据了。