### База данных Музыкального приложения ## I Будем разрабатывать базу данных для _упрощённого_ музыкального приложения, похожего на Spotify/YouTube Music/iTunes со следующей функциональностью: + пользовательские плейлисты; + поиск аудиотреков; + оформление платной подписки; Функциональность, которую мы точно не будем реализовывать - стриминг аудиотреков; - пользовательские рекомендации(?); ## II Специфичные ограничения: - обязателен учёт пользователей (_например, с помощью какого-то числового идентификатора_); - для каждого трека должна быть сохранена следующая инфа: - UPS (исполнитель) - ISRC (год+страна записи) - название трека - исполнитель - [опционально] текст трека - [опционально] жанр - [опционально] язык(и?) (_а сколько языков есть? можно ли их описать в отдельной таблице?_) - про плейлисты хорошо бы тоже хранить информацию: - название; - открытый или нет; - [опционально] описание; - [опционально] ссылка на обложку; Обязателен учёт следующих связей: - пользователь <-> плейлисты - плейлисты <-> набор треков - пользователь <-> токен платной подписки ## III - playlist - `id`: integer(?) -- id; - `name`: varchar(100) -- имя плейлиста; - `is_open`: boolean -- открытый или нет; - `desc`: text -- описание; - `cover_link`: text(url?) -- ссылка на обложку; - `user_to_playlist` - `user_id`: integer(?); - `playlist_id`: integer(?); - `playlist_to_tracks:` - `playlist_id`: integer(?); - `track_id`: integer(?); - `user_to_payment_token` - `user_id`: integer(?); - `token`: char(80);