2016-07-15 4 views
0

저는 작업중인 취미 프로젝트의 모델/테이블 관계를 설정하는 데 매우 어려움을 겪고 있습니다. 내가 가진 것은 주문입니다. 주문에는 하나 또는 여러 개의 패키지가 있고, 각 패키지에는 하나 또는 여러 개의 제품이 있으며, 각 제품에는 하나의 영역이 할당됩니다. 주문 및 동일한 패키지에 동일한 제품이 여러 개있을 수 있지만 각각은 다른 지역 인 및 수량이 다를 수 있습니다. 나는 관계가 어떻게 설정되어 있는지 결정하기 위해 고심하고 있습니다.주문 테이블

하루가 끝나면 주문의 모든 패키지와 각 패키지에 포함 된 모든 제품과 영역을 나열하는 주문 세부 정보를 보여주는 보고서를 실행해야합니다. 주문에 대한 각 제품의 모든 수량과 주문량을 보여주는 보고서도 필요합니다 (이 패키지는 패키지 없음). 나는 레일스 ActiveRecord를 사용하고 있는데, 다형성 관계가 있다고 생각하지만, 이것은 내 단순한 "모든 것은 일대 다 관계"를 가지고 있기 때문에 식별하는 데 어려움을 겪고있다. =)

이 테이블들을 지능적으로 결합시키는 것을 도와 줄 수 있습니까? 비슷한 스키마 다이어그램을 많이 찾지 않고 검색했습니다. 이제 며칠 동안이 작업을 진행했으며 모든 것이 함께 실행되기 시작했습니다.

enter image description here

내가 관계를 생각하고있는 무슨의 기초입니다,하지만 난 레일 모델이 어떻게 보이는지 모르겠어요. 주문과 관련된 모든 관계가 다형성 인 것처럼 보입니다. (?) 어떻게 이러한 관계를 레일에 중첩시킬 수 있습니까?

나는 많은 것을 배우고 있으며, 간단하지만 코드 작성을 시작할 때 더욱 복잡해집니다. 나는 올바른 길을 가고 있는가? 당신의 도움을 주셔서 감사합니다.

+0

다형성이란 Order_Package_ * X *가 * X *입니까? 이것은 액티브 레코드 (ActiveRecord [ "다형성 연관성을 가진 모델은 하나의 다른 모델에 하나 이상의 연관성을 둘 수있다"[http://guides.rubyonrails.org/association_basics.html] # polymorphic-associations). – philipxy

답변

0

JOIN 테이블이 필요하다고 생각합니다.

Order은 많은 Products; OrdersProduct을 추가 할 수 있습니다.

이 경우 두 열이있는 JOIN 테이블이 있습니다. OrderProduct의 기본 키. 이 둘은 복합 기본 키가됩니다.

Area이 스키마에서 의미하는 바를 모르겠지만, 아마도이 제안은 정신적 인 logjam을 깨뜨릴 것입니다.