여기 내 문제가 있습니다. 내 묶음에 몇 가지 entites가 있습니다. 영화를 관리하기 위해 번들을 만들려고합니다. 그러나 여러 경우에 액터는 이사가 될 수도 있고 그 반대 일 수도 있습니다. 그래서 저는 그것들을 "연예인"으로 지명했습니다. 그리고 각 영화, 영화 실재물에서 저는 감독으로 두 명의 예술가를, 배우로 영화 배우와 작가로 부부를 지명하고 싶습니다. 그러나 ManyToMany 관계로 아티스트 엔티티를 여러 번 참조 할 수 없습니다. 다음은 내가하려는 일입니다.Doctrine과 Symfony2 다수 manytomany 참조
/**
* @ORM\Entity
* @ORM\Table(name="movies")
*/
class Movie
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100)
*/
protected $title;
/**
* @ORM\Column(type="string", length=100)
*/
protected $image;
/**
* @ORM\ManyToOne(targetEntity="Artist", inversedBy="movies")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $actors;
/**
* @ORM\ManyToOne(targetEntity="Artist", inversedBy="movies")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $directors;
/**
* @ORM\ManyToOne(targetEntity="Artist", inversedBy="movies")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $writers;
이 문제를 어떻게 피할 수 있습니까?
왜 many-to-one입니까? 배우가 영화에서 여러 역할을 수행하는 경우 (즉, 감독자와 연기자가 동시에 역할을 수행하는 경우) 나는 몇몇 배우가 이것을했다고 믿는다. 그 다음 manytomany 일 텐데? ??? – user1158667
이것은 영화 엔티티가 아닙니다. 이것은 many-to-many를 사용할 때 하나의 교리가 생성하는 것처럼 두 엔티티를 결합하는 데 사용되는 엔티티입니다. 이 방법을 사용하면 동영상 엔티티, 역할 엔티티 및이 엔티티를 결합 할 수 있습니다. 아티스트를 무비에 추가하려면 해당 무비, 아티스트 및 역할을 추가하는이 엔티티 (MovieRole)를 유지해야합니다. 영화 엔티티 및 역할 엔티티는 서로를 인식하지 못하지만이 테이블 만 서로 연결됩니다. 이렇게하면 원하는만큼 동일한 영화에 아티스트를 추가 할 수 있습니다. –
그런데 왜 그렇게 많은가? 어떤 아티스트도 역할을 가질 수 있기 때문에 하나의 아티스트 만이 역할을 수행합니까? 나는 이것을 정확하게 얻고 있는가? – user1158667