SQL - Каков лучший дизайн стола для хранения людей как музыкантов и художников?
Я использую SQL Server 2008.
Я настраиваю новую базу данных для хранения информации музыкального альбома. Мне нужно знать, как лучше настроить мои таблицы, и мне нужно немного информации. Позвольте мне дать вам некоторые определения, чтобы вы могли мне помочь.
Исполнитель: AC / DC, Лед Цеппелин, Майкл Джексон, Кросби, Стилл и Нэш, Леди Гага. Это имя человека или группы. Если это группа, она представляет несколько музыкантов. Если это человек, он представляет исполнительскую сущность музыканта.
Музыкант: Это явно человек, такой человек, как Ангус Янг, Майкл Джексон или Стиви Рэй Вон.
Мои таблицы будут выглядеть так:
ARTISTS // table name
ArtistID // pk
Artist // name of artist, such as AC/DC / Michael Jackson / Lady Gaga
MUSICIANS // table name
MusicianID // pk
FirstName // first name of artist such as Angus, Michael, or Stephanie
LastName // such as Young, Jackson, or Germanotta
Pseudonym // such as Lady Gaga
ARTISTS_MUSICIANS // junction table name
RecordID // pk
ArtistID // fk
MusicianID // fk
Путаница приходит, когда я думаю о добавлении таких людей, как Леди Гага и Майкл Джексон. Есть ли флажок, который я должен использовать, чтобы указать, что Майкл Джексон является отдельным лицом, а также сущностью, а затем добавить две записи одновременно? Есть ли способ добавить две записи?
Также есть такие художники, как Steely Dan. В группу входят два ключевых музыканта, Дональд Фаген и Уолтер Беккер. Но у них есть тонна музыкантов, которые играют на каждой песне. Поэтому мне нужно будет связывать музыкантов с записями и песнями.
В частности, каков наиболее эффективный способ увидеть, что Майкл Джексон является как исполнителем, так и музыкантом?
Я был бы признателен за хорошие идеи, прежде чем пойти по неверному пути и создать большую миску спагетти с бесполезными данными.