一首歌可以有多个歌手和多个作家。有重叠,所以一些歌手写,一些作家唱歌 - 即不需要两个单独的表。我应该如何建立关系,以便有一个“艺术家”表,所以当我添加一首歌时,将其中一个/一些艺术家设置为歌手,其中一个/一些被设置为作家? / p>
顺便说一句(不相关),我正在使用名为“Petit four”的应用程序来创建数据库结构并烘焙应用程序:http://patisserie.keensoftware.com/en
答案 0 :(得分:1)
您可以在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
。