저는 세 엔티티 사이의 Doctrine 매핑과 관련하여 일부 의문점이 있습니다. 엔티티는 Natural
, Legal
및 Orders
입니다. 여기서 Natural
은 Orders
이 많고 Legal
은 많으므로 Orders
일 수 있습니다.엔티티에서 Doctrine2 매핑/관계 다루기
/**
* @ORM\OneToMany(targetEntity="Orders", mappedBy="natural")
*/
protected $orders;
public function __construct()
{
$this->orders = new ArrayCollection();
}
그런 Orders
엔티티에 난이 있습니다 : Natural
엔티티에 내가 Orders
에 OneToMany
양방향 관계를 이렇게하면 코드
/**
* @ManyToOne(targetEntity="NaturalPerson", inversedBy="orders")
* @JoinColumn(name="natural_id", referencedColumnName="id")
**/
protected $natural;
내 의심과 같습니다
- 내가 제 3의 실체를 가지고 있기 때문에 :사이에 관계를 맺기 위해서 같은 절차를 따라야합니까? 및
Orders
? Orders
이Natural
또는Legal
에 속하지만 두 가지가 아닌 빈 열을 남겨 두는 것이 심각한 불일치가 아닙니까?Orders
을 어떻게 저장합니까? 우선Orders
을 플러시하고 유지 한 다음Legal
또는Natural
의 개체를 설정하여setOrder()
메서드가Natural
및Legal
이어야합니다.
희망 어느 날 사전에이 감사를 이해하는 데 도움이 될 수 있습니다
지금 때까지 가지고있는 DB 모델, 그것은 변경 될 수 있습니다 여기에
제안 DB 모델
'NaturalOrders'에 대한 주문 1과 'LegalOrders'에 대한 자연적 및 법적 2 엔티티가 서로에게 속한 것이 아니라 서로 관련이 없으므로 하나의 '주문'엔티티에서 관련 주문을 유지해야하는 이유 way –
비즈니스 모델이 Natural 및 Legal이 동일한 기본 엔터티에서 파생되는 것이 맞습니까? 그런 식으로 Order 엔터티 대신'protected orderType'을 가지게 될 것입니다.'targetEntity = "baseOrderType"' – Alex
@MKhalidJunaid는 메인 포스트에서 모델을 가지고 있는데, 당신의 제안은 무엇입니까? 아이디어를 얻으려면 몇 가지 예제 코드로 대답 할 수 있습니까? – ReynierPM