Это мой первый проект с использованием базы данных NoSQL, и мне интересно, как структурировать мои данные наиболее эффективным способом.
Я делаю небольшой сервис, в котором хранятся все песни, проигранные радиостанцией. Пользователи могут «любить» песни. Итак, в основном у меня есть следующие данные:
Song: Id, Artist, Title
Play: SongId, Time (when was the song played)
Like: SongId, UserName, Time (when did the user click the like button)
Мне нужно выполнить различные запросы к этим данным. Например: последние сыгранные песни Х +, такие как количество, самые популярные песни за последние дни Х, кому понравилась конкретная песня и т. Д.
Сначала я думал о хранении всего в одном документе с вложенной игрой и подобной информацией. Но это делает некоторые запросы довольно сложными и требует от меня таких вещей, как сортировка на стороне клиента, но я бы хотел, чтобы объем данных, передаваемых из базы данных, был небольшим.
Я также думал о кешировании некоторых наиболее часто используемых запросов в памяти. Есть ли общие рекомендации, когда вы делаете что-то подобное?