Помощь с архитектурой базы данных
Привет всем. В продолжении моей предыдущей темы по выбору языка и библиотек/фреймворков, в которой вы мне очень помогли.
Сейчас тренируюсь на всяких простых вещах, понемного переходя на более сложные. Но, как я понял, в любом случае независимо от языка, работа с базой данных будет. Я почитал про РБД, тыкаю sqlite из терминала и через sqlitebrowser. Имитирую архитектуру приложения, которое будет, допустим, предоставлять поиск музыкальных групп по жанру, участникам, альбомам и прочему.
В базе данных 4 таблицы:
- Названия исполнителей.
- Имена участников.
- Названия и год альбомов.
- Названия песен.
Скажем, есть альбомы, которые пишут несколько исполнителей совместно. Есть случаи, когда люди были в нескольких группах-исполнителях. И так далее. Как в такой ситуации правильно создать связи на примере альбомов?
Есть альбом, его писала одна группа. Значит в таблице альбомы, в поле «Исполнитель» я добавляю ID исполнителя из таблицы исполнителей. Но как быть, если исполнителей несколько и их кол-во заранее неизвестно? Их может быть 2, 3 или 10 (конкретно в моем примере не так много, но могут быть другие немузыкальные направленности, где связей может быть и сто, и миллион). Вместо указания в виде числа ID в таблице альбомов указывать текст с чем-то типа списка с ID с учетом того, что это поле не будет ключевым? Какие-то другие варианты?