Я работаю над проектом, в котором будет использоваться Firebase Firestore. У меня не было опыта работы с noSQL, поэтому я работаю над пониманием этой технологии.
Приложение позволяет пользователю выбрать категорию фильма и загрузить соответствующий фильм, чтобы позволить ему издание фильма.
Категория и фильм не будут изменены пользователями и будут исправлены или изменены владельцем. Думайте, что это как каталог Netflix, где пользователь может смотреть только фильмы
Существует несколько категорий, но на данный момент в категории есть только один фильм (может быть, позже).
Каждый фильм имеет связанные метаданные.
В будущем:
- объект пользователя будет использоваться для ранжирования каждого пользователя по его оценке (информация, связанная с приложением).
- некоторые фильмы будут доступны с ограничением локализации, т.е. фильмы будут доступны только для пользователей из США.
В моей первой мысли структура данных будет выглядеть так:
// Collection
Category: {
name: "drama" // Could be action, or other
}
// Collection
Movie: {
name: "Matrix"
description: "Best movie ever"
duration: 1321312
url: "https://www....."
allowedCountry: "us" // is it the right place for this field?
category: "drama" // is it ok to duplicate data here?
}
//Collection
user: {
ranking: 3
withMovie: "Matrix" // is it ok to duplicate data here?
}
Я не уверен, что это правильная структура данных для этой проблемы.
Поток приложения в первый раз представит все возможные категории (поэтому я создаю отдельную коллекцию, чтобы избежать итерации по всей песне для получения категорий)
Затем, когда пользователь выбирает категорию, отображаются возможные фильмы, а приложение загружает выбранную.
Можно ли перебирать все возможные фильмы, чтобы показать фильмы, относящиеся к категории?
Или я должен поместить фильмы как подколлекцию коллекции категорий?