我有兴趣看到有关营业时间的数据库设计建议.
它与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) );
这允许您任意组合小时,包括每天多次.但是,从查询的角度来看,它可能会有点慢,因为您需要进行大量的加入才能得出业务开放时间列表.
此外,如果您希望能够以如下格式显示小时数:
MF 9-5 Sa-Su 9-12
您需要在数据库外部的代码中合并类似的范围.如果你想要这种合并,你可以将day_of_week改为start_day和end_day.