我目前正在尝试找出将企业的营业时间存储在数据库中的最佳方式。
例如:
企业 A 的营业时间如下
目前我有一个类似于以下的数据模型
CREATE TABLE "business_hours" (
"id" integer NOT NULL PRIMARY KEY,
"day" varchar(16) NOT NULL,
"open_time" time,
"close_time" time
)
其中“day”仅限于在代码中选择一周中的 7 天(通过 ORM)。为了测试一家企业是否在某一天关闭,它会检查 open_time 和 close_time 是否为 NULL。它通过一个中间表(Many To Many Relationship)与业务相关联。
有人对这个数据库方案有什么建议吗?关于它的某些东西对我来说似乎不正确。
最佳答案
总的来说,我认为这没有任何问题。除了...
所以我想我会这样做:
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/