這是我的問題。我的包中有幾個實體。我試圖製作一個管理電影的軟件包。但是,在一些情況下,演員也可以是導演,反之亦然。所以我把它們命名爲「藝術家」。然後,在每部電影中,在電影實體中,我想分配幾個「藝術家」作爲導演,一對夫婦作爲演員,一對夫婦作爲劇本/作家。但是,我無法多次使用ManyToMany關係引用Artist實體。這是我想要做的:學說和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;
我該如何避免這個問題?
爲什麼多對一?如果演員在電影中扮演多個角色(即指揮並同時在其中扮演角色),該怎麼辦?我相信一些演員已經做到了。那將是一個很多的東西呢? – user1158667 2012-04-08 17:44:32
這不是電影實體。這是用於連接兩個實體的實體,如使用多對多時生成的一個教條。通過這種方式,你有一個電影實體,一個角色實體和這個實體來加入它們。當你想添加一個藝術家到電影中時,你堅持這個實體(MovieRole)添加相關的電影,藝術家和角色。電影實體和角色實體彼此不知道,只有這個表使它們之間的連接成爲可能。這樣,您可以儘可能多地將藝術家添加到同一部電影中。 – 2012-04-08 18:25:25
爲什麼多對一呢?因爲任何藝術家都可以扮演一個角色,但角色只能由一位藝術家舉辦?我正確地得到這個嗎? – user1158667 2012-04-08 18:33:37