Структура данных Firestore для системы бронирования отелей - PullRequest
0 голосов
/ 27 сентября 2018

Я хочу построить систему бронирования отелей, которая также обеспечит доступность менеджера канала.Я хочу использовать Firestore для хранения моих данных.Я прочитал несколько статей, но все еще довольно плохо знаком с этим.

Я планирую настроить свою базу данных, используя такую ​​структуру:

collection: "reservations"

поля: booking_id, статус, имя, адрес электронной почты, дата заезда, дата выезда, room_id и т. Д.

collection: "rooms"

поля: room_id, room_type, room_number,etc

коллекция: «доступность»

поля: room_id, date, isAvailable, примеры: {room_id: 1, date: «2018-10-05», isAvailable: true}, {room_id:1, дата: "2018-10-06", isAvailable: true}

Вот некоторые ситуации, которые мне понадобятся:

Ситуация: Создано новое бронирование

Я создам новый документ о резервировании, а также обновлю документы о доступности на эти даты.

Ситуация: просмотр всех комнат по нескольким календарям

Я получу все документы по датам и комнатам и отобразлю их в виде сетки

Мои вопросы:

(1) Это лучшая структура для Firestore?

(2) Нужно ли устанавливать «доступность» как подколлекцию «комнат»?

Единственное, мне нужно получать доступность всех комнат достаточно часто, чтобы это вызывало много операций чтения.

(3) Сохраняю ли я Date как объект отметки времени или строку?Час / минута не требуется, поэтому для меня это выглядит слишком много, и мне нравится "2018-10-05", это выглядит аккуратно.

(4) Как мне написать запрос для обновления доступности, когдановое бронирование создано?Как получить желаемый диапазон дат?

Спасибо, что прочитали мои вопросы:)

1 Ответ

0 голосов
/ 01 декабря 2018

Я рекомендую вам добавить dateCreated к бронированию.

, а для номеров следует также добавить этаж (1-й / 2-й) и где находится уровень отеля(Я имею в виду 5/4 звезды )

, и вам также понадобятся сборы отеля для его идентификатора, имени, местоположения, звезд, наличия ресторана, парковки и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...