2013-10-18 2 views
1

음악에 대한 메타 데이터를 저장할 데이터베이스를 설계하고 있습니다. 이 5 개 테이블에 ...열에 대해 일대일 또는 일대 다 관계로 데이터베이스를 디자인하려면 어떻게해야합니까?

 
Song  : A Year Without Rain 
Album  : A Year Without Rain 
Artist : Selena Gomez & the Scene 
Composers : Lindy Robbins, Toby Gad 

:
예를 들어, 나는 다음과 같은 데이터를 저장할 것

 
Songs  : song_ID, songTitle, album_ID, artist_ID, composer_IDs 
Albums  : album_ID, albumTitle 
Artists : artist_ID, artistName, performer_IDs 
Performers : performer_ID, performerName 
Composers : composer_ID, composerName 

문제는 주어진 노래 (song_ID)을 위해,이다, 중 하나가 될 수있다 그것과 관련된 작곡가 (작곡가 _ID) 이상의 한 명 이상. 밴드 (artist_ID)의 멤버 수 (performer_ID)도 동일합니다.

이 열에 여러 값을 저장하기 위해 배열이나 쉼표로 구분 된 값을 사용하고 싶지 않습니다. 이 문제를 어떻게 수정합니까?

나는 이미 this 대답을 읽었지 만,이 설계로 구현하는 방법을 알 수는 없었습니다. 어떤 도움을 주시면 감사하겠습니다.

+1

당신의 질문은 소리 performer_ID [이 일] 같은 많은 (http://stackoverflow.com/questions/19437686/엔티티 - 관계 - 다이어그램 - 엔티티 - 할 수있는 - 여러 유형). –

+0

예,이 질문과 매우 유사하며 좀 더 명확합니다. 나를 가리켜 주셔서 다시 한번 감사드립니다. – Vinayak

답변

3

두 개의 열, Song_IDcomposer_ID을 포함하는 Song_Composer이라는 다른 테이블을 만듭니다. song_ID, songTitle, album_ID : 각 노래 좋아 그럼 당신은 같은 노래 ID

+1

당신이 링크 한 질문에 대해 Many-to-Many 관계가 꽤 비슷합니다. – Rafael

+0

감사! 그게 바로 제가 찾던 것입니다. 어리석은 질문에 대해 유감입니다. 나는 정말로 똑바로 생각하지 않고 있었다고 생각한다. – Vinayak

1

변경 테이블 구조 또한 두 개의 테이블 SongsComposers & ArtistsPerformers

노래를 추가로 행을 추가하여 많은 작곡가를 연결할 수 있습니다 composer_ID, composerName

SongsComposers : song_ID, composer_ID

,

작곡가

을 artist_ID

아티스트 : artist_ID, ARTISTNAME

출연 : performer_ID, performerName

ArtistsPerformers : artist_ID이

+0

그건 정확히 @ squeamish-ossifrage가 제안한 것입니다. 귀하의 의견을 보내 주셔서 감사합니다. – Vinayak