我试图根据其营业时间安排不同类型的业务
想要创建2个表
1.业务
2.营业时间(根据太阳,星期一,星期二,星期三,因此,星期五,坐着)
实施例:
公司名称:“Sam's salon”
营业时间:周一至周五上午10点至下午2点,周一至周五下午1点至5点,.....
plz建议一个相对表结构,其中每个业务都指向其工作时间。
答案 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');