Я строю приложение бронирования отелей. Информация, необходимая для создания очень простого приложения: гостиница, номера, принадлежащие каждой гостинице, и бронирование номеров, принадлежащих каждой комнате.
В качестве примера можно посмотреть (не обращайте внимания на то, что некоторые _id не уникальны, это была просто быстрая демонстрация):
{"_id":"5c8639a856be210634dfcf16",
"hotelName":"Hotel A",
"hotelDescription":"The best hotel ever",
"rooms":{
{"_id":"1235e56be210634dfcf13",
"roomNumber":"1",
"bookable: True",
"reservations":{
{"_id":"5c86365e56be21a634dfasdf",
"from":"2019-01-01",
"to": "2019-01-06"},
{"_id":"5c86365e56be21a634dfasdf",
"from":"2019-01-06",
"to": "2019-01-10"},
{"_id":"123455e56be21a634dfasdf",
"from":"2019-01-15",
"to": "2019-01-20"},
}
},
{"_id":"1235e56be210634dfcf13",
"roomNumber":"2",
"bookable: True",
"reservations":{
{"_id":"5c86365e56be21a634dfasdf",
"from":"2019-01-01",
"to": "2019-01-06"},
{"_id":"5c86365e56be21a634dfasdf",
"from":"2019-01-06",
"to": "2019-01-10"},
{"_id":"123455e56be21a634dfasdf",
"from":"2019-01-15",
"to": "2019-01-20"},
}
}
}
Как видите, номера вложены в отель, а резервирование вложено в номер. Это никогда не будет глубже. Средний отель может иметь 400 номеров и в среднем 50 бронирований в год.
Тем не менее. Мне интересно, я должен денормализовать это?
Так просто:
(Все _id автоматически сгенерированы Mongodb)
Hotels
Hotel _id:1,
Hotel _id:2,
Hotel _id:3,
Rooms
Hotel _id:1
Room _id:1,
Room _id:2,
Room _id:3,
Hotel _id:2
Room _id:4,
Room _id:5,
Room _id:6,
Reservations:
Room _id:1
Reservation _id:1,
Reservation _id:2,
Reservation _id:3,
Room _id:2
Reservation _id:4,
Reservation _id:5,
Reservation _id:6