저는 Rails가 재무 애플리케이션에 필요한 복잡한 집계 유형을 처리 할 수 있는지, 특히 ORM이이를 효과적으로 처리 할 수 있는지 여부에 관심이 있습니다. 이것을 사용하고자하는 재무 애플리케이션에서 다양한 방법으로 집계 된 상세한 재무 데이터에 대한 많은보고가 필요합니다. Rails ORM을 지원하지 않으면 직접 SQL을 작성해야합니다. 그러나 일단이 작업을 시작하면 레일스의 다른 부분도 제대로 작동하지 않을 수 있으며 결과적으로 대부분 레일스를 사용하고 결국 거의 사용하지 않게 될 수도 있습니다. 이것은 유효한 관심사입니까, 아니면 불필요하게 걱정합니까?Rails ORM이 집계를 수행하는 기능을 제한합니까?
답변
ActiveRecord의 한계는 과학적 환경에서 레일스를 사용하는 데 어려움을 겪은 이유 중 하나입니다.
디자인으로 ORM의 너무 SQL에서 멀리 당신을 데려 갈 궁극적으로 비록 : 당신은 다른 루비 ORM의 그것을 조금 쉽게 기존의 데이터베이스와 작업 할 수 있다는 것을 확인 할 수 있습니다 그들 중 누구도 잘 맞지 않을 수도 있습니다.
이 질문은 어려운 데이터베이스 매핑 요구 사항에 대한 상대적으로 불편한 RoR 문제를 설명합니다. (이것은 실제로 어려움이있는 ActiveRecord 패턴입니다.) 복잡한 쿼리를 AR 모델에 더 밀접하게 맞는 간단한 쿼리로 분해하는 것을 좋아합니다. 테이블에 비해 상대적으로 가벼운 추상화, 예를 들어. 일대 다 형식의 어설 션
그렇다면 SQL을 직접 받아 들인 다음 RoR이 비 지속성 부분을 처리하도록하면 더 편할 것이라고 말하고 싶습니다.
이것은 RoR에 국한된 문제가 아닙니다. 대부분의 모든 객체 관계형 모델링 도구는 동일한 질문을 제시합니다.
(각주 : 나는 거의 약어 ORM을 사용하지만, 우연히 아주 잘 특히 개념 데이터베이스 설계 및 abstration 이러한 유형의 문제를 처리하는 또 다른 ORM있다 :. 개체 역할 모델링)
그것은 가능성은 레일이 아니라고 이 응용 프로그램에 적합한 플랫폼 또는 데이터베이스의 뷰에 대해 ActiveRecord를 사용할 수도 있습니다. 데이터를 뷰에 집계 한 다음 'rails_sql_views'젬을 사용하면 일반 모델처럼 취급 할 수 있습니다. (나는 이것을 사용한 적이, 그래서 나는이 실제로 어떻게 작동하는지 잘 모른다.)
링크 : rails_sql_views는
편집 : 추가 검사에, 당신은 심지어 어떤 그 보석이 필요하거나하지 않을 수 있습니다 보기에 대해 단순히 쿼리하는 다른 특별한 설정.
내가 적극적인 기록을 좋아하는 이유는 그것이 당신이 추상화를 뚫어지게하는 것입니다. 나는 AR과 함께 처리 할 수없는 상황에 처했다. 극도로 복잡한 예가있을 수 있지만 더 나은 질문은 원하는 쿼리 유형의 예를 들어 누군가가 AR에서이를 수행하는 방법을 보여줄 수 있다는 것입니다.
좋습니다. –
- 1. 휘트니스 기능을 수행하는 방법
- 2. django ORM을 사용하여 다중 조인 및 집계를 수행하는 방법은 무엇입니까?
- 3. mongodb : 배열 필드에서 그룹 및 집계를 수행하는 방법
- 4. LINQ의 쿼리에서 그룹화 기준으로이 집계를 수행하는 방법은 무엇입니까?
- 5. MDX에서 집계를 수행하는 방법 SQL에서 'sum over partition'문과 비슷합니다.
- 6. olap 큐브의 필터 필드에서 필터링 된 집계를 수행하는 방법은 무엇입니까?
- 7. 교리 열 집계를
- 8. "집계를 추가하지 않았습니다"
- 9. 팀이 더 많은 상호 기능을 수행하는 방법?
- 10. 이 기능을 수행하는 시스템 호출은 무엇입니까?
- 11. "붙이기 및 표시"기능을 수행하는 방법
- 12. 파이썬에서 타이머 기능을 수행하는 올바른 방법
- 13. 단추없는 양식을 제출할 때 기능을 수행하는 방법
- 14. Drupal : 양식을 추가하고 기능을 수행하는 방법
- 15. jQuery에서 처음으로 클릭 기능을 수행하는 방법
- 16. 집계를 프로그래밍 코드로 표시하는 방법?
- 17. CouchDB 또는 MongoDB는 집계를 지원합니까?
- 18. django 집계를 필터 절로 사용
- 19. Rails 3에서 통합 테스트를 수행하는 방법은 무엇입니까?
- 20. Rails 3에서이 작업을 수행하는 방법은 무엇입니까?
- 21. JFileChooser를 디렉토리로 어떻게 제한합니까?
- 22. SVN 폴더를 어떻게 제한합니까?
- 23. AIR 배포를 어떻게 제한합니까?
- 24. JPQ 출력을 어떻게 제한합니까?
- 25. DataMapper 집계를 사용하여 N + 1을 피하는 방법
- 26. 집계 및 저장소. 집계를 결정하는 방법?
- 27. gsub를 사용할 때 대체 횟수를 어떻게 제한합니까?
- 28. PHP에서 양식 제출 속도와 입력을 어떻게 제한합니까?
- 29. 랙에서 요청 크기를 어떻게 제한합니까?
- 30. ListField의 전체 높이를 어떻게 제한합니까?
멋지게 말하고 완전히 대답 할 수없는 질문입니다. 가능한 구체적으로 당신이 할 수없는 것에 대해 우려하고 있습니까? 구체적이지 않은 경우 AR이 덜 평범한 상황에서도 SQL을 쉽게 사용할 수 있다는 지식을 바탕으로 최소한의 만족을 얻으십시오. –