Практики ради решил сделать на Django простой сервис, с помощью которого человек может составлять плейлисты из своих любимых песен.
Примерная логика работы:
Есть таблица, содержащая названия всех песен всех пользователей, таблица пользователей, таблица с плейлистами всех пользователей. Также есть промежуточная таблица для связи песен с плейлистами.
При регистрации юзера для него создается скрытый плейлист, куда добавляются все его треки (даже если он не выбрал ни одного плейлиста). Когда юзер добавляет трек, которого еще нет в базе, то он добавляется в основную базу треков и через скрытый плейлист привязывается к юзеру. Если трек есть в базе - то просто привязывается к юзеру. На первый взгляд ничего сложного.
Проблемы начались когда стало нужно упорядочить треки по дате добавления для каждого юзера отдельно. Нужно чтобы при выборке треки шли по порядку добавления каждым отдельным юзером, как в общем плейлисте юзера, так и в дочерних.
У меня есть 2 идеи как это сделать:
- Добавить поле с датой добавления в скрытый плейлист
- Вообще убрать скрытые плейлисты, создать промежуточную таблицу с внешними ключами на пользователя и трек, а также дату добавления
Какой вариант лучше выбрать? Очень важно чтобы выборка работала быстро при большом количестве юзеров, треков и плейлистов.
Спасибо за ответы.