【问题标题】:CakePHP & Foreign Key ConstraintCakePHP 和外键约束
【发布时间】: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


【解决方案1】:

当你调用同名FK时请使用别名

studentProfile.student_id and student_class.student_id

【讨论】:

    猜你喜欢
    • 2019-02-20
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多