데이터베이스 디자인에 대한 조언을 찾고 있습니다.symfony2의 엔티티 및 데이터베이스 디자인
symfony2 플랫폼에서 슬라이드 쇼 applicatino를 구성하고 있으며 4 가지 유형의 슬라이드 쇼 컨테이너 (회사, 지역, 속성 및 개별 모니터)가 있습니다. 이는 내용을 구성하고 내용을 상속하는 목적을위한 것입니다 (모니터는 속성에 있고 속성은 위치 영역 등의 일부입니다).
평면 PHP에서는 "컨테이너"와 "내용"이라는 두 테이블 만 사용하고 해당 컨테이너가 지리적 영역인지, 속성인지 등을 정의하는 컨테이너 테이블에 유형 필드를 넣었습니다. 각 내용 조각 (예 : 슬라이드)을 FK와 적절한 컨테이너에 연결하기 만하면됩니다.
심포니 2의 엔티티 시스템에 대해 배우면 다른 컨테이너 유형을 별도의 엔티티로 정의하여 대신 지리적 영역을 가져올 수 있고 자동적으로 반환 될 수 있습니다. 모든 하위 오브젝트 (모든 특성 및 차례로 해당 특성에 속하는 모든 모니터)를 즉시. 그러나 나는 다른 콘테이너들과 다른 콘테이너 타입들 사이에서 콘텐트 조각의 "소속"을 바꿀 수 있기를 원한다. 이것은 4 가지 서로 다른 entiy 유형 중 하나에 "속하는"능력을 가져야 만하는 경우 컨텐트 부분의 관계 (FK)에 문제가 발생할 가능성이 높다는 것을 알고, 설명 된 접근법으로 다소 털이 없을 것이라고 생각합니다.
symfony2 세계에서 노련한 사람이 여기까지 진행하는 가장 현명한 길을 가르쳐 줄 수 있습니까? 우리의 프로젝트에서
내가 먼저 보자 ... 당신은 비즈니스 지향적 인 방식으로 비즈니스 모델을 생각해야한다. ase. 엔티티가 '컨테이너'라는 속성을 가지기를 원한다면 다른 유형이 될 수 있고 (다른 동작을 가짐) 클래스 상속 문제가 있습니다. 예를 들어, 자식'GeoArea'를 갖는 클래스'Container'가 필요합니다. 그런 다음 계층 구조를 데이터베이스에 매핑해야합니다. http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/inheritance-mapping.html – eagleoneraptor