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. В группу входят два ключевых музыканта, Дональд Фаген и Уолтер Беккер. Но у них есть тонна музыкантов, которые играют на каждой песне. Поэтому мне нужно будет связывать музыкантов с записями и песнями.

В частности, каков наиболее эффективный способ увидеть, что Майкл Джексон является как исполнителем, так и музыкантом?

Я был бы признателен за хорошие идеи, прежде чем пойти по неверному пути и создать большую миску спагетти с бесполезными данными.

Ответы на вопрос(4)

Ваш ответ на вопрос