【问题标题】:How to store weekdays data alongwith start time and end time in database?如何在数据库中存储工作日数据以及开始时间和结束时间?
【发布时间】:2020-06-21 10:14:36
【问题描述】:

我正在尝试构建一些东西,它将在数据库中保存每个工作日的商店/商店的开放和关闭时间。 我怎样才能做到这一点?

我想制作一个新表,7 天有 7 列,但时间呢?那么它将需要额外的 14 列。

【问题讨论】:

  • 您可以在数据库中有 3 列 day 、 startTime 和 endTime 。应该够了

标签: java mysql sql spring


【解决方案1】:

这很棘手。有三列很诱人:

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

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

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

这个问题比听起来要复杂一些。在实际应用程序中,我可能会建议使用日历表,其中每个商店打开一行,打开和关闭的完整日期时间。例如,可以提前两年创建该日历,例如每年一次。

【讨论】:

    【解决方案2】:

    鉴于商店可能有每天有多个营业时间和关闭时间(很容易在 Google 地图上查看),因此每个商店可能需要有多个条目。那么为什么不使用以下结构:

    store_id   |   day_of_week    |    start_time    |    end_time
    

    day_of_week 在 [0,6] 中。

    此解决方案并非最佳的一件事是,如果商店在午夜后营业,那么即使商店在现实中并没有关闭和营业,您也将在午夜连续两天都有关闭和营业时间。

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

    【讨论】:

      猜你喜欢
      • 2019-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 2022-11-16
      • 2021-09-06
      • 2022-11-07
      相关资源
      最近更新 更多