【发布时间】:2013-07-03 18:43:55
【问题描述】:
我正在为第一个使用 Cake 的项目设计数据库,但遇到了重复外键约束的问题。
我在 mysql 工作台中创建了 db 模型,类似于
学生桌 身份证/姓名/
学生档案表
id/profile_value/student_id
外键:(**student_id**) Ref student.id
学生班级表
学生卡
班级号
外键:(**student_id**) ref student.id
班级表 id/类名
insert into mysql时报错#121,读后是外键重复造成的。 (http://thenoyes.com/littlenoise/?p=81)
但正如 cakephp 的文档中所述,外键 = 相关表的名称后跟 _id。所以如果有多个外键指向同一个字段,就会有重复。
hasMany、belongsTo 或 hasOne 关系中的外键是 默认识别为相关表的(单数)名称 其次是_id。所以如果一个面包师有很多蛋糕,蛋糕桌会 通过 baker_id 外键引用 bakers 表。对于多个 像 category_types 这样的措辞表,外键是 category_type_id。
有什么建议吗?
【问题讨论】:
-
除非您有意覆盖 CakePHP 的命名约定,否则您的表应称为“students”、“student_profiles”、“student_classes”和“classes”。
-
对,这是一个问题,但这不是错误121的原因。有什么建议吗?
-
@RichardAtHome classes_students*
-
I got error#121 when insert into mysql请显示一些代码和确切的错误消息证明你这样做 - 那个 sql 错误与创建表有关,CakePHP 不会为你做创建数据。
标签: cakephp foreign-keys