나는 네트워크 트래픽 트렌드를 (잘하면) 표시 할 Ruby on Rails를 배우는 방법으로 작은 응용 프로그램을 디자인하고 있습니다. 내가 기반으로하는 데이터가 매우 크기 때문에 (매일 100 억 개의 행), 우리는 시간별, 일별 및 월별로 데이터를 요약 한 세 개의 테이블을 가지고 있습니다. 적절한 접근 방식이 유사성에도 불구하고 각 유형의 데이터에 대해 3 가지 모델을 만드는 것이 궁금합니다. 그것은 결국 필자가 중복 코딩을 제거하기 위해 결국 리팩토링을해야한다는 것을 이해하면서 기울어 진 것으로 보인다. 제안 할 수있는 다른 접근법이 있다면 궁금한 점이 있습니까?비슷한 유형의 데이터를위한 여러 모델
1
A
답변
0
STI (단일 테이블 상속) 사용을 고려해 볼 수 있습니다. 자세한 내용은 How (and When) to Use Single Table Inheritance in Rails을 참조하십시오. 기사에서
:동일한 기능 및 데이터 필드의 많은 부분을 공유하는 모델 클래스를 처리 할 때 STI는 고려되어야한다, 그러나 당신은 개발자는 확장하거나 각에 추가를 통해 더 세부적으로 제어 할 수 있습니다로 수업을 개별적으로합니다. 여러 테이블 (DRY가 아님)에 대해 코드를 반복하여 복제하거나 특유의 기능 또는 메소드를 추가하는 유연성을 배제하기보다는 STI를 사용하면 특수한 기능을 작성하면서 단일 테이블에서 데이터를 유지할 수 있습니다. 재미있는
관련 문제
- 1. 여러 시간에 걸쳐 비슷한 데이터를위한 데이터베이스 디자인
- 2. 여러 유형의 사용자를위한 몽구스 모델
- 3. C에서 비슷한 유형의 캐스팅 #
- 4. 반 구조화 된 데이터를위한 데이터베이스 모델
- 5. Django : 동일한 유형의 여러 관련 필드가있는 모델
- 6. 비슷한 이미지의 이미지 모델
- 7. XSD는 "여러 유형의 이름이 'B'인 여러 요소가 모델 그룹에 표시됩니다."
- 8. ASP.NET MVC에서 여러 모델 업데이트하기
- 9. 모델 유형의 상점 배열
- 10. 비슷한 게시물 유형의 스크립트 (비슷한 이미지)를 만드는 PHP/MYSQL
- 11. 백본 모델/컬렉션과 비슷한 반응 라이브러리
- 12. 다른 유형의 모델 인스턴스 캐싱
- 13. 대용량 데이터를위한 Python의 대안
- 14. Ruby on Rails의 비슷한 모델
- 15. 모델 협회, 레일에 여러 모델
- 16. Haskell에서 구조적으로 비슷한 유형의 값으로 조작하십시오.
- 17. Linq 쿼리에서 비슷한 유형의 두 열을 선택하십시오.
- 18. 검색 할 파이썬 비슷한 유형의 문자열
- 19. Scala에서 비슷한 카레 식 유형의 차이
- 20. 가격 데이터를위한 데이터베이스 설계
- 21. 높은 수치 데이터를위한 최적의 학습 모델? (Rapidminer 포함)
- 22. 뷰 모델 당 하나의 뷰 인스턴스화 (동일한 유형의 여러 뷰)
- 23. 가변 데이터 유형의 장고 모델
- 24. 비슷한 데이터를 가진 CakePHP 모델 저장
- 25. 일일 데이터를위한 NoSQL 좋은 해결책?
- 26. Ajax (또는 이와 비슷한 모델) 함수로 모델 함수를 호출하려면 어떻게해야합니까?
- 27. 여러 모델 Myrrix
- 28. Ember.js에서 비슷한 컨트롤러/모델/템플릿 통합 (DRY)
- 29. 시계열 데이터를위한 효율적인 DynamoDB 스키마
- 30. Backbone.js : 동일한 유형의 중첩 모델 및 컬렉션
은 링크를 주셔서 감사합니다. STI 방법 개요에 따라 하나의 테이블에 모든 데이터를 수집하는 대안이 있다면 궁금합니다. 기본 데이터베이스가 마스터 DB에서 복제되므로 db 측에서 몇 가지 추가 작업이 발생할 수 있습니다. – Andrew
@Andrew는 독립 모델이 아닌 STI에서 수행해야 할 추가 작업을 설명 할 수 있습니까? – rubish
모델이 기반으로하는 테이블은 다른 마스터 데이터베이스에서 복제됩니다. STI를 사용하면 유형을 구별하기 위해 하나의 마스터 테이블에있는 모든 데이터를 TYPE 열로 통합하려고합니다. 데이터를 복제 한 다음 하나의 테이블로 통합해야합니다. – Andrew