gpt4 book ai didi

sql - 数据库中的营业时间使用什么数据类型

转载 作者:行者123 更新时间:2023-12-02 01:08:21 28 4
gpt4 key购买 nike

我想跟踪各个商店的营业时间,但我不知道什么是最好的存储方式。

一个直观的解决方案是设置每一天的开始和结束时间。但这意味着每天有两个属性,这看起来不太好。

另一种方法是为每一天设置一个开始时间和一个day to second 间隔。但是,这仍然意味着两个属性。

最常见和最简单的表示方法是什么?我正在使用甲骨文。

最佳答案

您需要的最低粒度可能是分钟(实际上,可能是 15 分钟的间隔,但称之为分钟)。

可能您还想考虑星期几。

如果您使用如下表格:

create table day_of_week_opening_hours(
id integer primary key,
day_of_week integer not null,
store_id integer not null,
opening_minutes_past_midnight integer default 0 not null,
closing_minutes_past_midnight integer default (24*60) not null)

在 store_id 和 day_of_week 上弹出唯一约束,对于给定的商店和星期几,您可以通过以下方式找到营业时间:

the_date + (opening_minutes_past_midnight * interval '1 minute')

或者...

the_date + (opening_minutes_past_midnight / (24*60))

一天 24 小时营业的商店可以用特殊代码而不是营业时间表示,在单独的表格中而不是特殊的营业时间和营业时间,或者您可以将营业时间/营业时间保留为空。

create table day_of_week_24_hour_opening(
id integer primary key,
day_of_week integer not null,
store_id integer not null)

还要考虑在给定日期根本不营业的商店,以及如何表示这一点。

也许您也可以使用基于日期的覆盖来指示特定日期(圣诞节等)的不同(或没有)营业时间。

这是一个非常有趣的问题。

关于sql - 数据库中的营业时间使用什么数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19894829/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com