0

Cake を使用した最初のプロジェクトの DB を設計していますが、外部キー制約の重複に問題があります。

次のような mysql ワークベンチで db モデルを作成します。

学生テーブル ID/名前/

studentProfile テーブル id/profile_value/student_id 外部キー: ( **student_id**) Ref student.id

student_class テーブル student_id class_id 外部キー: ( **student_id**) ref student.id

クラス テーブル ID/クラス名

mysqlへの挿入時にエラー#121が発生しました。読み取り後、重複した外部キ​​ーが原因です。( http://thenoyes.com/littlenoise/?p=81 )

しかし、cakephp のドキュメントに記載されているように、外部キー = 関連するテーブルの名前の後に _id が続きます。そのため、同じフィールドを指す複数の外部キーがある場合、重複が発生します。

hasMany、belongsTo、または hasOne リレーションシップの外部キーは、デフォルトで、関連するテーブルの (単数形の) 名前の後に _id が続くものとして認識されます。したがって、Baker が多数の Cake を持っている場合、cakes テーブルは、baker_id 外部キーを介して Bakers テーブルを参照します。category_types のような複数ワードのテーブルの場合、外部キーは category_type_id になります。

助言がありますか?

4

1 に答える 1

-2

同じ名前のFKを呼び出すときはエイリアスを使用してください

studentProfile.student_id and student_class.student_id
于 2013-07-23T04:59:38.773 に答える