0
我正在與三個實體之間的Doctrine映射工作,一些疑惑來到我身上。這些實體是Natural
,Legal
和Orders
,其中一個Natural
可以具有許多Orders
並且一個Legal
也可以具有許多Orders
。因此,在Natural
實體我有Orders
一個OneToMany
雙向關係是這樣的代碼:處理在實體中的Doctrine2映射/關係
/**
* @ORM\OneToMany(targetEntity="Orders", mappedBy="natural")
*/
protected $orders;
public function __construct()
{
$this->orders = new ArrayCollection();
}
然後在Orders
實體我有這樣的:
/**
* @ManyToOne(targetEntity="NaturalPerson", inversedBy="orders")
* @JoinColumn(name="natural_id", referencedColumnName="id")
**/
protected $natural;
這裏是我的疑惑:
- 由於我有第三個實體:
Legal
我應該按照相同的步驟來建立之間的關係和Orders
? - 這不是一個嚴重的不一致,留下一個空的列,因爲
Orders
屬於Natural
或Legal
但不是他們兩個? - 我如何保存
Orders
?我應該先沖洗並堅持Orders
第一次然後設置對象Legal
或Natural
所以方法setOrder()
應該在Natural
和Legal
對不對?
希望任何能幫助我理解這一點,並在此先感謝
建議DB模式
這裏是DB模式,我現在有胡麻,它是可以改變
它最好有2個實體爲'NaturalOrders'訂單1和其他的'LegalOrders'作爲自然人和法人不屬於彼此,那麼爲什麼它們相關聯的訂單應當由單'Orders'實體保持覺得這方式 – 2014-09-02 05:32:10
請問你的商業模式是有意義的自然人和法人,從相同的基本實體獲得?這樣一來,你的訂單實體將代替已經'保護orderType'其'targetEntity =「baseOrderType」' – Alex 2014-09-02 05:52:14
@MKhalidJunaid具有模型作爲我的主離開後,你有什麼建議嗎?你可以用一些示例代碼來回答一個問題以獲得想法嗎? – ReynierPM 2014-09-02 12:19:33