繁体   English   中英

预约系统查询逻辑错误

[英]Logical error in the query of the booking system

我的预订系统的逻辑出现了故障。 我有一个房间可以租。

我的数据库有以下预订测试条目: 在此处输入图像描述

现在有人想从 15.06 到 17.06 预订房间,但 17.06 已经预订了。

我想到了类似的东西

SELECT * FROM reservation WHERE resDate >= "2020-06-15" AND depDate <= "2020-06-17"

我对 Doctrine 的查询看起来像

        return $this->createQueryBuilder('s')
            ->where('s.resDate >= :startdate')
            ->andWhere('s.depDate <= :enddate')
            ->setParameter('startdate', $startdate)
            ->setParameter('enddate', $enddate)
            ->getQuery()
            ->getOneOrNullResult()
            ;

不知何故,我找不到相应的逻辑,查询告诉我它没有找到条目并且输入的时间段是免费的。 我究竟做错了什么?

您的预订从 17 日开始,因此从 15 日到 17 日仍然可以免费预订。

因此,您的逻辑应该是在 16 日的 1 天以内查询数据库,因为结帐将在 17 日完成。

通常当预订发生在 15 日至 17 日时,这意味着客人已支付 15 日、16 日和 17 日的费用,并将在 18 日早上退房。 这就是为什么您会在酒店预订中看到 3 晚和 5 晚住宿。 但在你解释的情况下。 好像您在 2 个地方计算同一天。

无论哪种方式,您都必须首先改变客户尝试预订房间的方式,否则粗略的修复将无法正常工作,并且稍后会造成其他混乱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM