You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

需创建哪些数据库表以编写查询获取营业中的门店

数据库表设计方案:查询门店是否营业

为了能高效查询正在营业的门店,需要拆分原有的字符串格式营业时间,设计两个关联表:

1. 门店基础信息表(stores)

存储门店核心基础信息,字段包括:

  • store_id:门店ID(主键,对应原表的StoreId)
  • store_name:门店名称(可选,按需补充)
  • address:门店地址(可选,按需补充)

2. 门店营业时间表(store_hours)

单独存储每个门店的每日营业时间,是实现查询的核心表,字段包括:

  • id:自增主键
  • store_id:关联门店ID(外键,关联stores表的store_id)
  • week_day:星期标识(建议用数字或枚举值,比如0=周日、1=周一…6=周六,或'SUN'/'MON'等,方便匹配日期函数)
  • open_time:当日开门时间(TIME类型,如09:00:00)
  • close_time:当日关门时间(TIME类型,如15:00:00)

数据导入示例

以原表StoreId=153为例,拆分后在store_hours中插入三条记录:

store_idweek_dayopen_timeclose_time
153009:00:0015:00:00
153108:00:0012:00:00
153207:00:0010:00:00

查询正在营业的门店SQL示例

假设当前时间为周一10:00,对应SQL(注意:不同数据库星期函数返回值有差异,需匹配week_day存储规则):

SELECT s.store_id, s.store_name
FROM stores s
JOIN store_hours sh ON s.store_id = sh.store_id
WHERE 
    sh.week_day = WEEKDAY(CURRENT_DATE) + 1 -- 适配MySQL的WEEKDAY函数(周一返回0)
    AND CURRENT_TIME BETWEEN sh.open_time AND sh.close_time;

设计原因

原表的OpeningHours是字符串格式,无法直接用日期/时间函数做条件筛选。拆分后用结构化时间字段存储,能快速匹配当前日期和时间,实现高效查询。

内容的提问来源于stack exchange,提问作者OneProgrammer2022

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 18:35:23