2013-09-23 23 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