我的应用有几家商店。有些商店从下午12点到第二天凌晨4点开放。
我们当前代码的问题是我们存储开放时间和关闭时间。现在这意味着第一天你可以把它放在下午12点 - 晚上11:59,但是第二天它仍然可以打开另外4个小时,然后在12点再次开放,技术上在午夜前1分钟关闭。
是否有人对此问题有任何经验,您是如何解决此问题并在数据库中进行设置的?
答案 0 :(得分:1)
要解决此问题以及任何其他数量的复杂案例,您可能会从开放时间作为关系或某种形式的集合中受益。
例如,一家营业时间为9-5但午餐时间为一小时的商店将有两个open_periods
,涵盖其中每一天的一半。
在这种方法中,您的商店将有一段时间从午夜开始到凌晨4点结束,另一段从中午开始到结束时间为23:59:59。
我建议然后将其与“opening_times”字符串字段耦合,以获得简单的,人类可读的开放时间字符串。
添加@MaxWilliams的建议,即开放时间段是开始时间和持续时间,你有一个非常灵活的系统。
答案 1 :(得分:1)
不是存储[start, end]
,而是存储[start, duration]
。
如果您想允许多个间隔,请为每个商店存储多个这些对。