如何根据其营业时间设置业务?

时间:2012-03-29 07:26:31

标签: mysql phpmyadmin

我试图根据其营业时间安排不同类型的业务

想要创建2个表
1.业务
2.营业时间(根据太阳,星期一,星期二,星期三,因此,星期五,坐着)

实施例: 公司名称:“Sam's salon”
营业时间:周一至周五上午10点至下午2点,周一至周五下午1点至5点,.....

plz建议一个相对表结构,其中每个业务都指向其工作时间。

2 个答案:

答案 0 :(得分:2)

关系模型如下:

Business Table
---------------
id - Primary Key - Auto Increment
Business Name

Busines Hours Table
-------------------
id - Primary Key - Auto Increment
Business id - Foreign Key (Business Table id field)
WeekDay (either number 0-6 or text for day)
Start Hour - datetime format
End Hour - datetime format

对于工作日编号系统0将是星期日,6将是星期六。如果您愿意,可以自定义。

这样您就可以轻松添加地址/电话等其他商家信息,而无需为一个商店添加多行。

答案 1 :(得分:2)

基本上我会用:

business_id - int (11)
weekday - enum('sun','mon','tue','wed','thu','fri','sat')
start_unix - int(11)
end_unix - int(11)

一天有86 400秒。您可以简单地保存从一天开始传递的秒数。

要获取某一天的开场白,您可以执行以下操作:

$str_week_day = strtolower(date('D'));

SELECT start_unix, end_unix
FROM business_hours
WHERE business_id = {$int_business_id} AND weekday = '{$str_week_day}'

然后为了得到时间,你就是这样:

$str_start = date('Ha', strtotime('today') + $row->start_unix);
$str_end = date('Ha', strtotime('today') + $row->end_unix);

echo "{$str_start}-{$start_end}";

在输入/创建行时,您只需执行:

// $_POST['start_unix'] could be 09:50am
$int_start_unix = strtotime($_POST['start_unix']) - strtotime('today');