gpt4 book ai didi

sql - 酒店预订系统 : optimal SQL db structure for querying

转载 作者:行者123 更新时间:2023-12-04 14:01:49 25 4
gpt4 key购买 nike

我将要设计一个酒店预订系统。

每个酒店都分配了一些房间类型。

房间类型:id |姓名 | hotel_id

每家酒店在特定时期(给定 date_fromdate_to)提供一定数量的 RoomTypes。此外,每个客户都可以在指定期间(date_fromdate_to)预订一定数量的某些 RoomTypes。

我需要能够找到并显示给定酒店的可用优惠,了解每天每个 RoomType 的免费(提供 - 预订)房间数量,查询最低免费房间数量等。

想请教一下,数据应该怎么保存。什么解决方案是最优的?我知道有些查询(例如,显示给定范围内每天给定类型的空闲房间数)无法通过简单的 SQL 查询实现,除非我使用存储过程。不过,我想让它尽可能快速且易于实现。

到目前为止我考虑过:

  1. 保留 RoomOffer: hotel_id |日期_从|日期_到 |数量 | room_type_id 与Reservation相同

  2. RoomOffer: hotel_id |日期 |数量 | room_type_id 与 Reservation 相同 - 即在创建 RoomOffer/Reservation 时,为给定范围内的每一天创建一条记录。

有什么建议吗?

最佳答案

我假设 RoomType 指的是一个房间,并且每个房间的主键是元组 (hotel_id, room_type_id),因为您同时使用了这两个字段对于 RoomOffer

但是,我不建议您采用RoomOfferReservation 方式。首先,因为你存储了很多冗余信息:当一个房间还没有被预订时,你需要一个房间报价来说明它是可用的(或者更糟糕的是,很多因为你按时间范围划分),你已经知道的东西。

除此之外,我建议使用与此更相似的设计:

Booking System UML

从您的问题中我知道您很关心系统的性能,但通常在设计阶段进行这种优化并不是一个好主意。这样做可能会导致您获得大量冗余数据和耦合类。但是,您可以使用索引甚至非 SQL 方法提高数据库查询的性能。您可以在项目的后期阶段更好地评估这一点。

关于sql - 酒店预订系统 : optimal SQL db structure for querying,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14883970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com