2009-07-27 7 views
0

최근에 우리는 분석 데이터를 저장하기위한 새로운 프로젝트를 담당했습니다. 나는 ORM에게 기회를주고 싶다. 매핑이 어렵지는 않지만이 문제는 저를 괴롭게합니다.NHibernate 조건부 매핑

이 데이터베이스는 Google 웹 로그 분석, Quantcast 및 향후 분석 공급자에 대한 데이터를 저장합니다. 나는 꽤 많이 사용되어야하는 스키마를 받았다. 우리가 각 공급자에 대해 다른 것들을 추적 할 때마다 행렬을 저장할 때까지는 매우 일반적입니다.

테이블 레이아웃

같은 것입니다 :

tblClient - 상점 모든 클라이언트의 웹 사이트.
tblProfile - 하나 이상의 클라이언트에 속합니다. 이 프로파일이 사용중인 공급자 및 profile_type과 같은 프로파일 데이터를 저장합니다.
tblProvider - 프로필이 GoogleAnalytics, Quantcast 또는 기타 분석 프로필인지 여부에 대한 데이터를 저장합니다.
tblProfile_Type - 클라이언트 사이트의 트랙 유형입니다. 우리는 고객 사이트를 다른 섹션으로 나누었습니다. 그것은 여기에서 추적됩니다.

프로필 테이블을 메트릭 테이블에 연결해야하는 경우 문제가 발생합니다. 이 다이어그램에서 나는 단지 하나만 가지고 있지만 다른 것들이있을 것입니다. 프로필 테이블의 Provider_Type에 대한 FK 열을 기준으로 연결해야합니다. 그게 가능하니?

+0

여러 메트릭 테이블을 가지므로 프로필을 결합 할 공급자 ID는 공급자 ID에 따라 다릅니다. – anonymous

+0

맞습니다. – Wix

답변

0

당신은 대일 tblAny_Profile와 tblAny_Provider 사이의 관계를 가지고있다. tblAny_Provider와 tblAny_Profile 사이에 일대 다 관계를 유지함으로써이 관계를 '반전'시킬 수 있습니까? tblAny_Profile 엔티티의 인스턴스가 많은 tblAny_Provider 엔티티에서 Bag 또는 List 속성을 가질 수 있습니다.

+0

문제는 프로필 유형에 따라 Google_Metric_Set 또는 Quantcast_Metric_Set (다이어그램에 표시되지 않음)에 대한 적절한 관계를 만드는 것입니다. – Wix