Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
酒店预订系统:用于查询的最佳SQL db结构_Sql_Design Patterns_Database Design_Software Design - Fatal编程技术网

酒店预订系统:用于查询的最佳SQL db结构

酒店预订系统:用于查询的最佳SQL db结构,sql,design-patterns,database-design,software-design,Sql,Design Patterns,Database Design,Software Design,我要设计一个酒店预订系统 每个酒店都指定了一些房间类型 RoomType:id | name | hotel|u id 每家酒店为特定时期提供一定数量的房间类型(给定date\u from和date\u to)。 此外,每个客户都可以在指定的时间段(从到的date\u和date\u到)预订一定数量的某些房间类型 我需要能够找到并显示给定酒店的可用报价,了解每天每种房间类型的免费(提供-预订)房间数量,查询最低免费房间数量等 我想征求意见,我应该如何保存数据。什么是最佳解决方案?我知道有些查询(比

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

每个酒店都指定了一些房间类型

RoomType:id | name | hotel|u id

每家酒店为特定时期提供一定数量的房间类型(给定
date\u from
date\u to
)。 此外,每个客户都可以在指定的时间段(从到的
date\u和
date\u到
)预订一定数量的某些房间类型

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

我想征求意见,我应该如何保存数据。什么是最佳解决方案?我知道有些查询(比如,在给定范围内显示给定类型的每天空闲房间的数量)不能用简单的SQL查询实现,除非我使用存储过程。然而,我想让它尽可能快和容易实现

到目前为止,我考虑过:

  • 保留
    房间优惠:酒店id |日期|从|日期|到|数量|房间类型| id
    与预订相同

  • 拥有
    RoomOffer:hotel|id | date | quantity | room|type(客房类型)id
    和预订相同-即在创建RoomOffer/预订时,在给定范围内每天创建一条记录


  • 有什么建议吗?

    我假设
    RoomType
    指的是一个房间,而且每个房间的主键是元组
    (hotel\u id,room\u type\u id)
    ,因为您对
    RoomOffer
    使用这两个字段

    但是,我不建议您采用
    RoomOffer
    Reservation
    方法。首先,因为您存储了大量冗余信息:当一个房间还没有预订时,您需要一个房间报价来说明它是可用的(或者更糟糕的是,很多是因为您将它除以时间范围),这是您已经知道的

    与此相反,我建议采用更类似的设计:

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