酒店预订系统的 Firestore 数据结构

Ric*_*ico 7 nosql firebase google-cloud-firestore

我想构建一个酒店预订系统,该系统还将向渠道经理推送可用性。我想使用 Firestore 来存储我的数据。我读了几篇文章,但对此仍然很陌生。

我打算使用这样的结构来设置我的数据库:

集合:“预订”

字段:reservation_id、状态、姓名、电子邮件、入住日期、退房日期、room_id 等

收藏:“房间”

字段:room_id、room_type、room_number 等

集合:“可用性”

字段:room_id, date, isAvailable 示例:{room_id: 1, date: "2018-10-05", isAvailable: true}, {room_id: 1, date: "2018-10-06", isAvailable: true}

这些是我需要的一些情况:

情况:创建了一个新的预订

我将创建一个新的“预订”文档,我还将更新这些日期的“可用性”文档。

情况:所有房间的多日历视图

我将获取日期和房间的所有文档并显示在网格中

我的问题是:

(1) 这是为 Firestore 设置的最佳结构吗?

(2) 是否需要将“可用性”设置为“房间”的子集合?

唯一的问题是我需要经常获取所有房间的可用性,这样会导致大量读取操作。

(3) 我是将 Date 存储为时间戳对象还是字符串?没有涉及小时/分钟的时间,所以对我来说看起来有点太多了,我喜欢“2018-10-05”,它看起来很整洁。

(4) 如何编写查询以在创建新预订时更新可用性?如何获得我想要的日期范围?

感谢您阅读我的问题:)

Xar*_*mer 0

我建议您添加dateCreated到预订中。

对于房间,您还应该添加楼层(第一/第二)以及酒店级别在哪里(我的意思是5/4 星级

您还需要一个酒店集合,包含其 ID、名称、位置、星级、是否有餐厅、是否有停车位等。