歌と歌詞のデータベースです。次のようなデータベースからアプリを作成しようとしています: (すべてのテーブルには ID がありますが、省略しました..)
songs
song_name
artists
artist_name
songs_singers
artist_id (FOREIGN KEY artists.id)
song_id (FOREIGN KEY songs.id)
songs_writers
artist_id (FOREIGN KEY artists.id)
song_id (FOREIGN KEY songs.id)
song_views
song_id (FOREIGN KEY songs.id)
videos
song_id (FOREIGN KEY songs.id)
video_views
video_id (FOREIGN KEY videos.id)
作家と歌手は重複しています。つまり、一部の作家は歌い、一部の歌手は書きます。
曲のテーブルをベイクすると、次の エラーが表示されます。
問題は、CakePHP がシンガー用の新しいモデルを作成することを望んでいることだと思います。そのため、新しいテーブルのシンガーでライターとシンガーの名前を複製する必要があります。名前をアーティストに保存し、song_singers と song_writers の両方を外部キー ID でそのテーブルにリンクさせたいだけです。
曲はたくさんあります:
ビュー
ビデオ
ビデオには多くのものがあります:
- ビュー
作家と歌手の両方が多くを持っています:
- 曲
私は何をすべきか?
編集: これがモデル SongsSinger です。
class SongsSinger extends AppModel {
public $validate = array(
'song_id' => array(
'numeric' => array(
'rule' => array('numeric'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'artist_id' => array(
'numeric' => array(
'rule' => array('numeric'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
);
public $belongsTo = array(
'Song' => array(
'className' => 'Song',
'foreignKey' => 'song_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Artist' => array(
'className' => 'Artist',
'foreignKey' => 'artist_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
}