我即将设计一个酒店预订系统。
每个酒店都分配了一些房间类型。
RoomType: id | name | hotel_id
date_from
每家酒店都为特定时期(给定和date_to
)提供一定数量的 RoomType 。date_from
此外,每个客户都可以在指定时期(和date_to
)内预订一定数量的某些房间类型。
我需要能够找到并显示给定酒店的可用优惠,了解每天每种 RoomType 的免费(提供 - 预订)房间数量,查询免费房间的最低数量等。
我想请教一下,我应该如何保存数据。什么解决方案是最优的?我知道除非我使用存储过程,否则使用简单的 SQL 查询无法实现某些查询(例如,显示给定范围内每天给定类型的空闲房间数)。但是,我想让它尽可能快速和易于实施。
到目前为止,我已经考虑过:
RoomOffer: hotel_id | date_from | date_to | quantity | room_type_id
与预订保持一致与
RoomOffer: hotel_id | date | quantity | room_type_id
Reservation 相同 - 即在创建 RoomOffer / Reservation 时,为给定范围内的每一天创建单个记录。
有什么建议吗?