Сценарий : Сущность A является родительской, B является дочерней по отношению A к 1 со многими, C является дочерней по B от 1 до многих. Допустим, A - это учетная запись, B в Contact & C - это адрес
. Нам нужно иметь всю структуру в одном документе, поэтому никаких вложенных коллекций и вложенных документов. Для дочерних объектов у нас есть 2 варианта: Карта карт или Массив карт. Мы склонны к «карте карт», так как мы не можем установить уникальный идентификатор в массиве на верхнем уровне. Это должно быть поле внутри массива, а затем в сценарии его сложно искать, так как нам нужно перебрать все записи.
Таким образом, конфигурация будет выглядеть примерно так : - Определитьполе типа «Карта» внутри учетной записи с именем «Контакт» - внутри контакта будут только поля типа «Карта». Каждое имя поля карты является уникальным идентификатором контакта. Итак, скажем, 2 карты: ContactId1, ContactId2 - Внутри карты ContactId1 у нас будет какое-то поле Контакта, например имена, а затем у нас будет еще одно поле «Адрес» типа Map. - «Адрес» будет иметь только поля типа карты внутри него. Каждое имя поля карты является уникальным идентификатором адреса: AddressId1, AddressId2 - в AddressId1 карты будут поля для адреса, т. Е. StreetName, No, City, Zipcode и т. Д.
Вопросы :
- Является ли тип данных «Карта карт» лучшим подходом, чем тип данных «Массив карт» для нашего сценария
- Каковы плюсы и минусы обоих подходов
Account{
Name: "My Account Name"
Contact:
Contact123:
FirstName: "F1"
LastName: "L1"
Address:
Address1231:
Street: "Street1"
City: "City1"
Address1232:
Street: "Street2"
City: "City2"
Contact234:
FirstName: "F2"
LastName: "L2"
Address:
Address2341:
Street: "Street3"
City: "City3"
Address2342:
Street: "Street4"
City: "City4"
}