2

has_many의 다형성 연관은 일반적으로 다음과 같은 색인됩니다 :Rails 앱에서 has_one 다형성 연관에 어떤 데이터베이스 색인을 사용해야합니까?

# The migration: 
t.references :commentable, polymorphic: true, index: true 

# Produces this in the schema: 
add_index "comments", ["commentable_id", "commentable_type"], name: "index_comments_on_commentable_id_and_commentable_type" 

그러나, 나는이 has_one 다형성 협회 (세부 사항에 대한 this question 참조)이있다. 이 색인은 여전히 ​​유용합니까? posting_detail_typeposting_detail_id의 조합은 각각 하나씩 만 발생하므로 고유 할 것입니다. 그래서 인덱스가 유용하지 않을 것 같습니다.

이 경우 어떤 색인 생성을 사용해야합니까? posting_detail_type 열에 하나만 있습니까?

답변

1

예이 색인은 여전히 ​​유용합니다.

기본 규칙은 검색 시간을 단축하기 위해 정기적으로 쿼리하는 열을 인덱싱해야한다는 것입니다.

다형성 연관의 경우 id와 type 열은 모두 색인이어야합니다. 고유 한 ID/유형 쌍이 있지만, 다른 ID와 동일한 유형을 여러 개 가질 수 있으며 그 반대도 마찬가지입니다. 검색을 통해 검색해야하므로 두 열 모두에서 검색 속도가 빨라집니다.

귀하의 질문에 대한 답변입니다.

관련 문제