1

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

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

4

1 回答 1

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.

查看HABTM 的手册

于 2013-09-23T16:24:07.363 回答