and*_*hky 6 mysql database database-design
我有兴趣看到有关营业时间的数据库设计建议.
它与Facebook的相似 - 替代文字http://uploader.ws/upload/200903/widget.png
我有一个企业列表,我希望用户能够为该业务输入多组可用时间.例如,
星期一:9-5开; 周二:开放9-12; 1-5; 我不希望每天限制在两套小时.理想情况下,每天N小时.如果这不实用,不超过4 ......不少于2.
我对"最佳"(理论)和最实用的解决方案感兴趣.
我正在使用的DBMS是MySQL.
怎么样:
create table business (
id int not null auto_increment primary key,
name varchar(255)
);
create table open_hour_range (
id int not null auto_increment primary key,
business_id int,
day_of_week tinyint, /* 0-6 */
open_time time,
close_time time,
foreign key(business_id) references business(id)
);
Run Code Online (Sandbox Code Playgroud)
这允许您任意组合小时,包括每天多次.但是,从查询的角度来看,它可能会有点慢,因为您需要进行大量的加入才能得出业务开放时间列表.
此外,如果您希望能够以如下格式显示小时数:
MF 9-5 Sa-Su 9-12
您需要在数据库外部的代码中合并类似的范围.如果你想要这种合并,你可以将day_of_week改为start_day和end_day.