当前位置:  开发笔记 > 后端 > 正文

数据库设计 - 显示可用时间的最佳方式?

如何解决《数据库设计-显示可用时间的最佳方式?》经验,为你挑选了1个好方法。

我有兴趣看到有关营业时间的数据库设计建议.

它与Facebook的相似 - 替代文字http://uploader.ws/upload/200903/widget.png

我有一个企业列表,我希望用户能够为该业务输入多组可用时间.例如,

星期一:9-5开; 周二:开放9-12; 1-5; 我不希望每天限制在两套小时.理想情况下,每天N小时.如果这不实用,不超过4 ......不少于2.

我对"最佳"(理论)和最实用的解决方案感兴趣.

我正在使用的DBMS是MySQL.



1> Scotty Allen..:

怎么样:

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.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有