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


CakePHP database relations: songs with singers and writers

一首歌可以有多个歌手和多个作者。有重叠,所以有些歌手写,有些作家唱歌——也就是说,不需要两个单独的表格。我应该如何建立关系,以便有一个"艺术家"表,所以当我添加一首歌时,将其中一位/一些艺术家设置为歌手,将其中一位/其中一些设置为作者?

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

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

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

当然,您将需要writers_songsartists_songs的关联表。

查看HABTM手册: