我正在设置一个日历,用户可以在上面指示他们何时可用。日历分为每天3个时段,每周7天(周一上午、周一下午、周一晚上)。
我有点纠结于最好的办法是把它存储在我的数据库里。我想过要做:
开始日期
结束日期
用户id
或
时隙
用户id
或
user\u id&mon1mon2mon3…sun3创建21列似乎不是最佳选择,但它确实使可用性查询变得非常简单。
我想保留一些灵活的时间来定义的插槽。第二个似乎给了我这个,因为我可以定义以后每天的小时数。
最后我必须能够查到谁在2019-02-01 13:00:00-2019-02-01 17:15:00有空。这些日期与时隙不符。
1条答案
按热度按时间pexxcrt21#
您可以使用3个字段来存储此信息,
假设两个用户的示例数据中包含这些字段,
您可以很容易地获得给定时间段内用户的可用性。例如,您想获取今天下午时段的可用性(考虑到下午1点到4点是晚上时段),可以通过以下查询来获取,
同样,您可以更改
slot_time
查询中的子句用于早晚时段。更新
根据op的要求,如果用户选择了一天和一个时段,它将适用于每个月/年。基于此,您可以消除
slot_date
列和使用day_of_week
它将存储从1到7的整数值,即(sun到sat)然后,查询整个下午的可用性将是,