2012-06-20 4 views
2

나는 전혀 이해할 수없는 디자인 문제에 직면 해있다. DB에 Timed_Tests라는 테이블이 있습니다. Timed_Tests에는 Timed_Test라는 관련 모델이 있습니다.상속을위한 Ruby on Rails의 Mixins vs. Citier

최근에는 약간 다른 기능을 가진 3 가지 유형의 Timed_Test가 필요하다는 것을 깨달았습니다. 현재 Timed_Test가 있으며, Timed_Test가 가진 종료 날짜가없는 Test_Basic이있을 것이고 몇 가지 추가 속성이있는 Special_Test가있을 것입니다.

나는 이것을 설정하는 것이 가장 좋은 방법인지 알아 내려고하고있다. 모든 다른 유형의 테스트에 대해 모든 유형의 속성을 가진 하나의 커다란 테스트 테이블을 사용해야합니까? 클래스 상속 구조는 어떻게 설정해야합니까? citier (http://peterhamilton.github.com/citier/)를 사용해야합니까? 믹스 인은 DB 스키마와 어떻게 잘 맞습니까?

나는 질문의 무리를 요청하고 그들은 내가 알고 조금 모호 - 질문을 명확히 물어, 나는 위의에 대해 생각하고 문제 중 하나를 답변 해 주시기 주시기 바랍니다.

감사합니다. SpecialTest 인스턴스의 특정 속성 많은 수없는 경우

답변

0

안전하게 하나의 테이블 상속으로 갈 수 있습니다. 이렇게하면 매핑의 단순성을 유지하면서 원하는 방식으로 클래스의 비헤이비어를 자유롭게 지정할 수 있습니다. 유지 mixin 클래스에서 테스트 인스턴스를 검색하지 못할 것이다 (그래서 어떤 식 으로든 테이블 상속을 가지고 있지)를 사용하여

.