一首歌可以有多个歌手和多个作家。有重叠,所以一些歌手写作,一些作家唱歌——也就是说,不需要两张单独的桌子。我应该如何建立关系以便有一个“艺术家”表,所以当我添加歌曲时,将其中一个/一些艺术家设置为歌手,并将其中一个/一些设置为作家?
顺便说一句(不相关),我正在使用一个名为“Petit Four”的应用程序来创建数据库结构并烘焙应用程序:http: //patisserie.keensoftware.com/en
一首歌可以有多个歌手和多个作家。有重叠,所以一些歌手写作,一些作家唱歌——也就是说,不需要两张单独的桌子。我应该如何建立关系以便有一个“艺术家”表,所以当我添加歌曲时,将其中一个/一些艺术家设置为歌手,并将其中一个/一些设置为作家?
顺便说一句(不相关),我正在使用一个名为“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_songs
和artists_songs
.
查看HABTM 的手册: