我正在努力建立一个东西,这将节省,在数据库,一个商店/商店的开放和关闭时间为每一周的一天。 我怎么才能做到呢?
我想到了做一个新表,有7列7天,但是时代呢? 那么它将需要额外的14列。
这挺棘手的。 有三个专栏很诱人:
<date of week> <open time> <close time>
但是,在以下情况下,这会变得很棘手:
这个问题比听起来要棘手一点。 在一个实际的应用程序中,我可能会建议使用一个日历表,其中每个存储区都有一行打开,并为打开和关闭提供完整的日期时间。 这个日历可以提前两年创建,比如一年一次。
鉴于商店每天可以有多个开关门时间(很容易在谷歌地图上查看),可能需要每个商店有多个条目。 所以为什么不使用下面的结构呢:
store_id | day_of_week | start_time | end_time
其中[0,6]中的day_of_week
。
这个解决方案有一个不是最优的地方,那就是如果一个商店营业时间超过午夜,那么你会连续两天在午夜都有关门和开门的时间,即使这个商店在现实中并没有关门和开门。
请注意,store_id
将不是这里的主键,而是所有列一起(即复合键)。