三个实体和完整性约束



我有三个实体:

  • 学校
  • 学校类型
  • 分支

具有以下关系:

    学校
  • 类型到学校(一对多)
  • 学校类型到分支机构(一对多)
  • 分支到学校(一对多)

如果我更新我的数据库结构"php 应用程序/控制台原则:模式:更新 --force",我会收到以下错误消息。

  [DoctrineDBALDBALException]
  An exception occurred while executing 'ALTER TABLE school ADD CONSTRAINT FK_F99EDABBDCD6CC49 FOREIGN KEY (branch_id) REFERENCES schooltype_branch (id)':
  SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`ebm2`.`#sql-3cf_e6e`, CONSTRAINT `FK_F99EDABBDCD6CC49` FOREIGN KEY (`branch_id`) REFERENCES `schooltype_branch`
   (`id`))

但是我没有发现我的错误,有人可以给我一个提示吗?

我还将展示我的三个实体的一些相关部分:

学校:

class School implements BuildingInterface
{
    /**
     * @ORMColumn(type="integer")
     * @ORMId
     * @ORMGeneratedValue(strategy="AUTO")
     */
    protected $id;
     /**
     * @ORMManyToOne(targetEntity="SchoolType", inversedBy="schools")
     * @ORMJoinColumn(name="schooltype_id", referencedColumnName="id")
     */
    protected $schooltype;
    /**
     * @ORMManyToOne(targetEntity="SchooltypeBranch", inversedBy="school")
     * @ORMJoinColumn(name="branch_id", referencedColumnName="id")
     */
    protected $branch;
}

学校类型:

class SchoolType implements BuildingTypeInterface
{
    /**
     * @ORMColumn(type="integer")
     * @ORMId
     * @ORMGeneratedValue(strategy="AUTO")
     */
    protected $id;
    /**
     * @ORMOneToMany(targetEntity="EbmUserBundleEntitySchool", mappedBy="schooltype")
     */
    protected $schools;
    /**
     * @ORMOneToMany(targetEntity="EbmUserBundleEntitySchooltypeBranch", mappedBy="schooltype")
     */
    protected $branch;  
}

校型分部:

class SchooltypeBranch
{
    /**
     * @ORMColumn(type="integer")
     * @ORMId
     * @ORMGeneratedValue(strategy="AUTO")
     */
    protected $id;
     /**
     * @ORMManyToOne(targetEntity="SchoolType", inversedBy="branch")
     * @ORMJoinColumn(name="schooltype_id", referencedColumnName="id")
     */
    protected $schooltype;

    /**
     * @ORMOneToMany(targetEntity="EbmUserBundleEntitySchool", mappedBy="branch")
     */
    protected $school;
}

显然外键约束失败,就像school表中不存在branch_id schooltype_branch表一样。

最新更新