Можем ли мы сохранить некоторые похожие свойства в разных документах одной коллекции в контейнере БД космос - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть два типа документов: пользователь и группа в одной коллекции, документ пользователя имеет свойства, такие как идентификатор пользователя, имя пользователя и роли пользователя, а документ группы имеет свойства, такие как groupid, name и users (которые являются частью этой группы), так что я могу иметь одинаковую информацию о пользователе как в пользовательском, так и в групповом документе, или он должен хранить идентификатор пользователя в групповом документе и извлекать их снова соответственно, формируя пользовательский документ через API. Ниже приведены примеры документов пользователя и группы

Пользователь: {"id": строка, "имя пользователя": строка "role: []}

Группа:

{" id ": string" groupName ": строка" users ": []}

1 Ответ

0 голосов
/ 07 февраля 2020

Вы можете сделать любой из способов, но я бы рекомендовал хранить только идентификаторы пользователей в групповом документе. Вот мое объяснение этому:

  • Если вы должны были отредактировать пользователя (скажем, изменить роль), то вам придется выбрать групповой документ, найти пользователя, внести в него изменения и затем сохранить их. , Кроме того, вам нужно будет сделать то же самое в пользовательском документе. Таким образом, вы в итоге обновите 2 документа. Это учитывая, что пользователь принадлежит только к 1 группе. Если пользователь принадлежит к нескольким группам, вам необходимо сделать то же самое для каждой группы.
  • Кроме того, каждый документ имеет максимальный размер (я думаю, 2 МБ). Если у вас большое количество пользователей в группе, вы мгновенно превысите этот лимит.
...