2011-07-30 4 views
0

을 의미합니까 무엇레일 3 : "고유 인덱스 열이있는 모델"정확히 "고유 인덱스 열이있는 모델"

이 단지 모델과 열에 고유 검증에 열을 의미 하는가? 또는 마이그레이션에 열에 add_index가 필요하다는 의미입니까?

add_index를 만드는 것이 정확히 무엇을 의미하는지 설명 할 수 있습니까? 예를 들어 이름 열이있는 Authors 모델이있는 경우. '이름'에 색인을 추가하면 무엇이 성취됩니까?

감사합니다.

+0

당신이 "고유 인덱스 열이있는 모델"일부 문맥을 줄 수 있습니까? 그 문구는 어디서 볼 수 있니? –

+0

꽤 애매한 - 많은 사람들이 고유 한 제약 조건을 의미하기 위해이 문구를 사용한다고 생각합니다 - 단순히 열이 고유해야 함을 의미합니다. – Randy

+0

'Simple Models'아래의 friendly_id 안내서에서 http://norman.github.com/friendly_id /file.Guide.html –

답변

0

모델에 고유 한 것으로 보장되는 인덱스가 있고 인덱스가있는 것을 의미합니다. 레일스에서 ​​일반적으로 모델에 대해 읽고 있습니다.

고유 한 열은 두 개의 모델 (예 : User1 및 User2)이 해당 열에 대해 동일한 값을 가질 수 없음을 의미합니다. 예를 들어 사용자는 고유 한 로그인을 갖습니다. 동일한 로그인 (또는 사용자 이름 또는 전자 메일)을 가진 두 명의 사용자가 없어야합니다. 그러나 Rails는 모델에 항상 고유 한 ID 열을 자동으로 제공합니다. 변경하지 않는 한 첫 번째 레코드의 ID는 1, 2, 3 등이됩니다.

열의 인덱스는 해당 열을 쉽게 찾을 수 있음을 의미합니다. 백과 사전을 생각해보십시오. 거기에는 많은 정보가 있지만 부록과 같이 색인을 통해 원하는 것을 빨리 찾을 수 있습니다. 주요 용어에 대한 부록이있을 수 있으며, 그 다음에 신속하게 찾을 수있는 위치를 알려줍니다. 이것이 바로 열의 인덱스입니다.

기본적으로 레일스의 "고유 한 색인 열이있는 모델"은 기본적으로 ID 열입니다.이 열은 고유하며 자동으로 색인을 생성하여 더 빨리 레코드를 찾습니다.

추가 기능 : 외래 키를 사용하여 모델을 만들 때 (예 : 모델 사용자가 gender_id를 가질 수 있으며 남성 및 여성을 정의하는 Gender라는 테이블이있을 수 있으며 gender_id가 Gender 개체에 해당) 해당 외래 키에 대한 색인을 추가하여 검색 속도를 빠르게해야합니다.

더 많은 정보 : http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_index

관련 문제