'id'및 'dependency'열이있는 작업 엔터티가 있습니다. 내 현재의 설정은 'id'와의 OneToOne 자체 참조 관계에 '의존성'이 있습니다. 아이디어는 각 작업에 하나의 종속성을 할당 할 수 있지만 종속성은 하나의 작업에만 고유하지 않다는 것입니다.Doctrine 자체 참조, 고유하지 않은 관계 설정 방법
예를 들어 작업 4와 작업 5는 둘 다 작업 2의 종속성을 가질 수 있지만 4와 5는 서로에 대해 아무 것도 알 필요가 없습니다.
두 개의 다른 후속 작업에 대한 종속성과 동일한 작업을 할당하려고 시도 할 때까지 모든 것이 올바르게 작동했습니다. OneToOne 관계는 고유 한 것으로 정의되며 변경 될 수있는 것이 아닙니다. 이것은 제가 원하는 것을 구현하는 최선의 방법을 찾아 내려고 노력하게 만듭니다. 앞의 태스크는 의존하는 후속 태스크에 대해 알 필요가 없으므로 단방향 관계가 필요합니다.
Task는 하나의 종속성 만 가질 수 있기 때문에 ManyToOne은 의미가없는 것처럼 보입니다. OneToMany는 'Id'열에 종속 작업에 대한 정보를 제공합니다.이 작업은 필요하지 않으며 엔티티를 업데이트 할 때 예측할 수없는 파급 효과가 있는지 확실하지 않습니다.
어쩌면 나는 (Doctrine에 상당히 새로운) 꽤 올바른 것을 이해하지 못하기 때문에, 누군가 올바른 방향으로 나를 가리킬 수 있다면, 나는 그것을 고맙게 생각할 것이다.
자체 참조 (OneToOne, OneToMany 및 ManyToMany)에 대한 doctrine 설명서를 참조하십시오. [http://docs.doctrine-project.org/en/2.0.x/reference/association-mapping.html#one-to -Many-self-referencing] – Javad
@Javad, 나는 그 문서들에 대해 조사해 왔고 유일한 제약을 어떻게 바꿀지를 알 수 없다. 내 게시물에 명시된 바와 같이 원래의 자체 참조 OneToOne은 동일한 작업에 대한 여러 참조를 필요로 할 때까지 정확하게 작업했습니다. – TheGremlyn
이전에 작성한 색인을 삭제하고 새로운 변경 사항에 대한 스키마 기본을 업데이트 할 수 있습니까? 이것이 도움이 될지 모르겠지만, @ORM \ Table (name = "table_name", uniqueConstraints = {@ORM \ UniqueConstraint (name = "set_any_name", columns = "Symfony \ Bridge \ Doctrine \ Validator \ Constraints \ UniqueEntity;를 사용해야하는"put ","list ","of ","unique ","columns "}}))' – Javad