我正在尝试使用yii框架构建餐馆餐桌管理应用程序,目前我在特定时间检索表的可用性时遇到困难
我有以下表格
下图显示了我的表结构
我通过使用以下代码获得可用表
$model = new Table;
$criteria = new CDbCriteria;
$criteria->condition = 'floor_id=' . $floorid;
$rows = $model->model()->with(array(
'bookingTables' => array(
'condition' => 'bookingTables.table_id IS NULL'
)))->findAll($criteria);
仅当booking_table表中没有表ids时才有效
假设如果说booking_table表填充了表格id,那么上面的代码将无效,它将始终返回为不可用(不知道如何使用时间获取可用表格)
那么如何在yii或sql
中的任何解决方案中获取特定时间段的可用表答案 0 :(得分:2)
既然您同时接受SQL和YII,我会在SQL中为您提供解决方案。
如果您想在特定时间检查可用性,您需要知道预订日期(包括小时),所以让我们考虑在“booking_table”表中添加“reservation_date”字段,让我们考虑一下预订在开始后2小时结束。 这就是我将在SQL中做的事情:
SELECT t.table_id
FROM TABLE AS t
LEFT OUTER JOIN booking_table AS b ON b.booking_table_id = t.table_id
WHERE b.booking_id IS NULL
OR DATE_ADD(NOW(), INTERVAL 2 HOUR) > b.reservation_date
此查询在执行时列出所有可用表。如果您想在特定时间检查可用性,请将NOW()替换为您需要的任何内容。