将布尔值映射到关系数据库中的日期范围

时间:2011-07-25 07:57:56

标签: relational-database range

我不太确定我的头衔是否正确。

假设您有一个汽车租赁服务数据库,其中包含将在什么时间出租汽车的信息。这些车可以一次出租多天,但不得少于一天(所以时间是原子的)。

您如何将其纳入关系数据库?你是否为每个日期都有一行,其中一个布尔表示当天该车将被使用?或者你是以其他方式工作的?

额外的问题:什么解决方案可以检查在最简单/最快的特定时间租出多少辆汽车?

谢谢,

循环。

2 个答案:

答案 0 :(得分:2)

汽车租赁表中的

有汽车租赁结算日期和汽车租赁登记日期,您可以通过确定是否在某一天出租汽车。 WHERE $date_to_check BETWEEN checkout_date AND checkin_date

答案 1 :(得分:0)

为什么不制作两张桌子:CARS和RENTALS?

在CARS中,您可以保留有关实体车的所有信息(型号,日期等)。 在租赁中,您可以保留有关租赁本身的所有信息(开始时间租赁,结束时间租赁等等)

您将它们与RENTALS中指向ID车的外键相关联。

        CARS                                        RENTALS
idCar | model | ....            idRental | xIdCar | startDate        |     endDate
  1     Honda                       1         1     1/1/2010 10:30     1/1/2010 18:30
                                    2         1     1/1/2010 19:00     2/1/2010 10:30

这应该可以解决您的问题,因为您只需要查询租约以了解您需要的日期并加入汽车