2009-04-17 3 views
0

분명히하기 위해 데이터베이스에 사용자와 사용자 통계가 있고 도시, 주, 카운티 및이 두 테이블과 관련된 지역 정보도 있습니다. 이 시나리오에서 필자는 밤, 점진적 프로세스를 통해 도시, 주, 현 및 지역 수준으로 사용자 통계를 효과적으로 롤업 할 수 있습니다.데이터 스키마 모델에서 동적 계층 구조를 효과적으로 디자인하는 방법은 무엇입니까?

나는 도시, 주, 카운티 같은 그룹을 고정하지 않습니다하지만 난 어떤 슈퍼 사용자가 자신의 그룹을 만들 수있는 유연성을 가지고 다음과 같은 형식으로 수동으로 사용자를 묶어 할 대체 시나리오 :

User1| 
User2| - group1 
User3| 
       -> group3 
User4| 
User5| - group2 
User6| 

또한, 난 여전히 같은, 내 도시, 주를 가지고 카운티 그룹을 계속 사용할 수 있습니다 :

User1| 
User4| - city1 
User3| 
       -> county1 
User4| 
User5| - city2 

효과적으로 이러한 다양한 버킷에 관련된 데이터를 롤업하는 데 사용할 수있는 알려진 데이터베이스 패턴이 있습니까? 어떤 종류의 태깅 패턴?

알려 주시기 바랍니다. 명확하지 않은 경우 자세한 내용을 명확히 할 수 있습니다.

또한 설명 :

내가 국가에 따라 사용자가 클릭에 대한 보고서를 추적 할, 내가 드릴 다운이 개 상태로 수준 및 도시 촉진 할 수 있습니다.

이제 사용자 인터페이스를 통해 내 그룹을 만들 수있는 시설을 갖췄다. 이제 다른 주에있는 도시가있는 새 지역을 만들 수있을 것입니다. 이제 보고서를 통해 국가 별 사용자 클릭 수를 보여줄 수 있고 맞춤 지역 (도시 그룹)으로 드릴 다운 할 수 있습니다. 사용자 클릭 수, 다양한 평균 등의 모든 분석은 이제 새 그룹을 기반으로 다시 계산해야합니다.

+0

추가 설명이 좋을 것입니다. 정확하게 말하면, 더 구체적 일 것입니다; 당신이 말하는 것을 정말로 알기가 조금 어렵습니다. –

+0

더 많은 정보를 추가했습니다. 도움이 되셨습니까? –

답변

3

nested sets 또는 인접 목록 (동일한 문서에서)을 살펴보십시오. 그들은 플러스와 마이너스를 가지고 있습니다 ....

+0

중첩 된 세트는 잘 설명되어 있지 않더라도 유지 관리가 복잡해질 수 있습니다. 하지만 나는 너에게 동의한다. 가능한 해결책이 될 수 있습니다. +1 –

+0

공통 테이블 표현식이 있어도 여전히 관련이 있습니까? 또는 CTE가 완화 한 인접성 목록을 사용하는 것이 단점이므로 중첩 세트를 유지 관리하면 유용하지 않게됩니다. – BenCr

0

내 대답은 user defined hierarchical data models에 관한 질문과 비슷하게 들리 겠지만 아마도 도움이 될 것입니다.

+0

제안 된 모델을 구현 했습니까? –

+0

아담 로빈슨 (Adam Robinson)의 제안 (받아 들인 답)과 함께 갔는데, 지금까지 잘 작동하고있는 것 같아요. 당신이 찾고있는 것과 약간 다를 수도 있습니다. – ninesided

0

로직에 오류가 있습니다. 도시, 카운티, 주정부는 계층 적 구조가 아닙니다. 하나의 도시가 여러 카운티에 존재할 수 있습니다.

관련 문제