보고 엔진에 대해 데이터을 생성하는 보고서 엔진을 설계 (및 코딩)하고 있습니다. 이는 프레젠테이션 계층에 대해 이 아니며입니다.논리 보고서 엔진을 만드는 데 유용한 디자인 패턴은 무엇입니까?
예 : 사람들의 기록이 가득한 데이터베이스가 있습니다. DB의 각 사용자는 약 15 개의 속성을가집니다.
내 보고서는 약 15 비즈니스 규칙에 따라, 사람의 특정 그룹을 선택
- 할 필요가있다. 예를 들어 다음과 같은 단순한 WHERE 절보다 논리적 인 흐름 알고리즘에 더 닮았습니다. 18-25 세이며 자영업자입니다. 100 명 미만인 경우 25-28 세 그룹도 포함 ... 100 명 미만인 경우 학생 인 사람도 데려가십시오. ... 계속됩니다 ...
- 특정 그룹에 대한 작업을 진행하면서 다른 그룹별로 다른 데이터 세트를 작성해야하며 서로 다른 측정 항목을 포함해야합니다. 예를 들어, 평균 신장 - 체중별로 그룹화, 평균 소득 - 연령별로 그룹화 ... 이들은 또한 다음과 같은 복잡한 비즈니스 규칙을 가지고 있습니다. - 연령 그룹에 5 명 미만인 사람이있는 인접 그룹과 집계하십시오. 거기에 사람들의 작은 수는 있지만, 어쨌든 항상
내 주요 관심사는 내가 매우 유사하다는 것을, 비즈니스 규칙의 많은을 가지고 있다는 것입니다 .... 독립적으로 20 ~ 30 세 그룹을 보여 형태가 다르지만 온갖 종류의 작은 세부 사항이 있습니다. 내 경험에 비추어 볼 때, 유지하기가 끔찍한 많은 중첩 된 if-else를 가진 정말 긴 파일이되는 바람에 유지 보수 가능하고 이해하기 쉬운 방법으로 이것을 작성하고 싶습니다.
나는 꽤 많은 양의 보고서를 가지고 있으며 가능한 한 많은 보고서를 미리 계산하고 싶습니다. 실제로 보고서의 기준은 무한히 많기 때문에 보고서를 즉시 작성해야합니다. 사전 계산과 임시보고에 대한 논리를 한 곳에서 유지하고 싶습니다.
여기의 보고서 데이터는 제품이므로 매우 신속하게 전달하여 최종 사용자에게 전달해야합니다.
현재 설계에는 CouchDB에 저장된 데이터와 nodeJS에서 수행되는 처리가 포함됩니다. 훨씬 쉽고 빠르게 사용할 수있는 무언가가 있다면 바뀔 수 있습니다. 나는 수십억 개의 레코드를 가지고 있는데, 이것이 '빅 데이터'라고 말하지는 않습니다. (물론 이것은 커질 수도 있습니다.)
감사합니다.