提问者:小点点

如何在数据库中存储工作日数据以及开始时间和结束时间?


我正在努力建立一个东西,这将节省,在数据库,一个商店/商店的开放和关闭时间为每一周的一天。 我怎么才能做到呢?

我想到了做一个新表,有7列7天,但是时代呢? 那么它将需要额外的14列。


共2个答案

匿名用户

这挺棘手的。 有三个专栏很诱人:

<date of week>  <open time>  <close time>

但是,在以下情况下,这会变得很棘手:

  • 每天24小时营业的商店。
  • 午夜后关门的商店。
  • 假日营业时间不同的商店。
  • 中午关门的商店(在某些国家/地区会发生这种情况)。

这个问题比听起来要棘手一点。 在一个实际的应用程序中,我可能会建议使用一个日历表,其中每个存储区都有一行打开,并为打开和关闭提供完整的日期时间。 这个日历可以提前两年创建,比如一年一次。

匿名用户

鉴于商店每天可以有多个开关门时间(很容易在谷歌地图上查看),可能需要每个商店有多个条目。 所以为什么不使用下面的结构呢:

store_id   |   day_of_week    |    start_time    |    end_time

其中[0,6]中的day_of_week

这个解决方案有一个不是最优的地方,那就是如果一个商店营业时间超过午夜,那么你会连续两天在午夜都有关门和开门的时间,即使这个商店在现实中并没有关门和开门。

请注意,store_id将不是这里的主键,而是所有列一起(即复合键)。