我想构建一个酒店预订系统,该系统还将把可用性推向渠道经理。我想使用Firestore存储数据。我读了几篇文章,但对它来说还很新。
我打算使用这样的结构来设置数据库:
收藏:“预订”
字段:reservation_id,状态,姓名,电子邮件,入住日期,退房日期,room_id等
收藏:“房间”
字段:room_id,room_type,room_number等
集合:“可用性”
字段:room_id,日期,isAvailable 示例:{room_id:1,日期:“ 2018-10-05”,isAvailable:true},{room_id:1,日期:“ 2018-10-06”,isAvailable:true}
这些是我需要的一些情况:
情况:创建新的预订
我将创建一个新的“预订”文档,还将更新这些日期的“可用性”文档。
情况:所有房间的多日历视图
我将获得日期和房间的所有文档,并显示在网格中
我的问题是:
(1)这是为Firestore设置的最佳结构吗?
(2)我是否需要将“可用性”设置为“房间”的子集合?
唯一的是我需要经常获得所有房间的可用性,这样会导致很多读取操作。
(3)是否将Date存储为时间戳对象或字符串?没有小时/分钟的时间,所以对我来说看起来有点太多,我喜欢“ 2018-10-05”,看起来很整洁。
(4)创建新预订后,如何编写查询以更新可用性?如何获取我想要的日期范围?
感谢您阅读我的问题:)
答案 0 :(得分:0)
我建议您将
dateCreated
添加到预订中。
对于房间,您还应该添加楼层(1st / 2nd),以及酒店级别(我的意思是 5/4星)
并且您还需要一个酒店集合,包括其ID,名称,位置,星级,可使用餐厅,可停车等。