6

我正在尝试使用 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 表中不存在表 ID 时才有效

假设如果说 booking_table 表填充了表 ID,那么上面的代码将不起作用,它将始终返回为不可用(不知道如何使用时间来获取可用表)

那么如何获取特定时间段的可用表 yii 或 sql 中的任何解决方案

4

1 回答 1

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()”替换为您需要的任何内容。

于 2012-11-27T18:27:01.000 回答