2017-04-06 1 views
3

프로필 사진과 표지 사진에 종이 클립 열을 사용하는 응용 프로그램에 9 개의 모델이 있습니다.Rails - 성능을 위해 다형성을 사용하거나 사용하지 않음

나는 (적어도 내 제한 이해에서)이 옵션

  1. 다른 구 개 모델과 연관된 다형성 모델 ProfilePicture을 가지고 있습니다.
  2. 각 모델의 프로필 사진과 표지 사진 필드를 추가하십시오.

총 9 개의 모델에는 약 30M 레코드가 있습니다.

성능이 다형성을 사용하거나 정상적인 워크 플로우를 진행하는 것이 더 좋을까요? 아니면 내가 누락 된 더 나은 옵션이 있습니까?

답변

1

성능은 중요하지만 항상 가장 중요한 부분은 아닙니다. 당신은 이론적으로 열과 논리를 9 가지 모델로 복제해야합니다. 다형성 경로를 사용하면 로직을 한 곳에서 가질 수 있지만 모든 사용자에 대해 연관된 레코드를로드해야합니다. 나는 다형성 (polymorphic)을 가지며 사용자와 연관된 캐시를 캐시 할 것이다. 이렇게하려면 IdentityCache과 같은 것을 사용할 수 있습니다. ProfilePicture 테이블에서 picturable_idpicturable_type의 색인을 생성하면 조회가 매우 빠릅니다.

관련 문제