Нет SQL как искать идентификатор в коллекции - PullRequest
0 голосов
/ 05 марта 2020

Нет SQL нуб здесь. Я создаю приложение, используя Firestore № SQL. Я перебираю элементы, где каждый элемент имеет идентификатор владельца (идентификатор пользователя создателя). Я хочу отобразить имя владельца на странице листинга. В традиционном SQL у меня есть внешний ключ, поэтому я могу просто сослаться, чтобы сказать, Item.Owner.FirstName

Какова лучшая практика в № SQL? Должен ли я сохранять имя владельца в качестве поля во время сохранения элемента? или выполнить поиск каждого идентификатора владельца, чтобы получить объект пользователя, пока я зацикливаюсь на элементах?

Второй вариант звучит дорого, поэтому я предполагаю, что 1-й способ - это путь к go. Если нет лучшего, более приемлемого пути?

1 Ответ

1 голос
/ 05 марта 2020

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

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

Поскольку мы не знаем требований к производительности и поведению вашего приложения, мы не можем дай конкретный c совет. Вам нужно будет тщательно продумать, какую проблему вы хотите решить, возможно, исходя из сложности, производительности и общей стоимости.

...