2013-09-23 4 views
1

노래에 여러 가수와 여러 명의 작성자가있을 수 있습니다. 겹치는 부분이 있기 때문에 일부 가수는 글쓰기를하고 일부 작가는 노래를 부릅니다. 즉 두 개의 별도 표가 필요하지 않습니다. 어떻게하면 하나의 "아티스트"테이블이 가능하도록 관계를 맺을 수 있습니까? 그래서 노래를 추가 할 때 가수로 설정하고 그 중 하나 또는 그 이상을 작가로 설정하십시오. 방법 (무관)으로CakePHP 데이터베이스 관계 : 가수 및 작성자가있는 노래

, 내가 응용 프로그램을 데이터베이스 구조를 만들고 굽는 "쁘띠 네"라는 응용 프로그램을 사용하고 있습니다 : http://patisserie.keensoftware.com/en

답변

1
당신은 당신의 노래 모델에서 별칭을 사용할 수 있습니다

- 뭔가를 다음과 같이 :

$this->Song->hasAndBelongsToMany(
       'Writer'=>array(
        'className'=>'Artist', 
        'joinTable'=>'writers_songs' 
       ) 
); 

$this->Song->hasAndBelongsToMany(
       'Singer'=>array(
        'className'=>'Artist', 
        'joinTable'=>'singers_songs' 
       ) 
); 

물론 당신은 당신의 연결 테이블 writers_songsartists_songs가 필요합니다.

체크 아웃 the manual for HABTM :