【发布时间】:2020-06-21 10:14:36
【问题描述】:
我正在尝试构建一些东西,它将在数据库中保存每个工作日的商店/商店的开放和关闭时间。 我怎样才能做到这一点?
我想制作一个新表,7 天有 7 列,但时间呢?那么它将需要额外的 14 列。
【问题讨论】:
-
您可以在数据库中有 3 列 day 、 startTime 和 endTime 。应该够了
我正在尝试构建一些东西,它将在数据库中保存每个工作日的商店/商店的开放和关闭时间。 我怎样才能做到这一点?
我想制作一个新表,7 天有 7 列,但时间呢?那么它将需要额外的 14 列。
【问题讨论】:
这很棘手。有三列很诱人:
<date of week> <open time> <close time>
但是,对于以下情况,这会变得很棘手:
这个问题比听起来要复杂一些。在实际应用程序中,我可能会建议使用日历表,其中每个商店打开一行,打开和关闭的完整日期时间。例如,可以提前两年创建该日历,例如每年一次。
【讨论】:
鉴于商店可能有每天有多个营业时间和关闭时间(很容易在 Google 地图上查看),因此每个商店可能需要有多个条目。那么为什么不使用以下结构:
store_id | day_of_week | start_time | end_time
day_of_week 在 [0,6] 中。
此解决方案并非最佳的一件事是,如果商店在午夜后营业,那么即使商店在现实中并没有关闭和营业,您也将在午夜连续两天都有关闭和营业时间。
请注意store_id 不是这里的主键,而是所有列一起(即复合键)。
【讨论】: