gpt4 book ai didi

database - 在数据库中存储营业时间

转载 作者:太空狗 更新时间:2023-10-30 01:37:27 25 4
gpt4 key购买 nike

我目前正在尝试找出将企业营业时间存储在数据库中的最佳方法。

例如:

企业 A 的营业时间如下

  • 周一:上午 9 点至下午 5 点
  • 周二:上午 9 点至下午 5 点
  • 周三:上午 9 点至下午 5 点
  • 周四:上午 9 点至下午 5 点
  • 周五:上午 9 点至下午 5 点
  • 周六:上午 9 点至中午 12 点
  • 星期日:休息

目前我有一个类似于下面的数据模型

CREATE TABLE "business_hours" (
"id" integer NOT NULL PRIMARY KEY,
"day" varchar(16) NOT NULL,
"open_time" time,
"close_time" time
)

其中“日”仅限于在代码中选择一周中的 7 天(通过 ORM)。要测试某个企业是否在某一天关闭,它会检查 open_time 和 close_time 是否为 NULL。它通过中间表(多对多关系)与业务相关。

有人对这个数据库方案有什么建议吗?我觉得有些地方不对。

最佳答案

总的来说,我认为这没有任何问题。除了...

  1. 我会使用您的 native 编程语言使用的任何编号系统(在其库中)将星期几存储为整数。这将减小数据库的大小并从您的代码中删除字符串比较。

  2. 我可能会将业务表的外键放在此表的此处。这样您就不需要链接表。

所以我想我会这样做:

CREATE TABLE "business_hours" (
"id" integer NOT NULL PRIMARY KEY,
"business_id" integer NOT NULL FOREIGN KEY REFERENCES "businesses",
"day" integer NOT NULL,
"open_time" time,
"close_time" time
)

在我的业务逻辑中,我会强制执行一个约束,即每个“业务”都有至少 7 个“营业时间”。 (至少,因为 Jon Skeet 是对的,你可能想要假期。)虽然你可能想通过简单地在企业关闭的日子里留下“营业时间”来放宽这个限制。

关于database - 在数据库中存储营业时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1036603/

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