CakePHP数据库关系:与歌手和作家合作的歌曲

时间:2013-09-23 14:41:38

标签: php cakephp database-design cakephp-appmodel

一首歌可以有多个歌手和多个作家。有重叠,所以一些歌手写,一些作家唱歌 - 即不需要两个单独的表。我应该如何建立关系,以便有一个“艺术家”表,所以当我添加一首歌时,将其中一个/一些艺术家设置为歌手,其中一个/一些被设置为作家? / p>

顺便说一句(不相关),我正在使用名为“Petit four”的应用程序来创建数据库结构并烘焙应用程序:http://patisserie.keensoftware.com/en

1 个答案:

答案 0 :(得分:1)

您可以在Song模型中使用别名 - 如下所示:

$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