2010-01-26 2 views
3

이 문제는 DataMapper의 Ticket #58에서 논의 된 것으로 밝혀졌지만, 2007 년에 분명히 돌아 왔지만 최신 버전 (dm-core-0.10.2)에서는 수행 할 방법을 찾을 수 없습니다. 두 개의 복합 인덱스를 정의하려고합니다. 각 복합 인덱스는 부분적으로 특정 속성을 기반으로합니다. 나는 이것을 할 수 있기를 바랬다 ...DataMapper 속성을 여러 복합 인덱스에 표시 할 수 있습니까?

올바른 방법은 무엇입니까?

답변

2

이 작업을 수행 할 수 있습니다

class Stat 
    include DataMapper::Resource 
    property :id,   Serial, 
    property :collected_on, Integer, :index => [ :index_one, :index_two ] 
    property :measure,  Integer 
    property :dimension_one, Integer, :index => :index_one 
    property :dimension_two, Integer, :index => :index_one 
    property :source_id,  Integer, :index => :index_two 
end 

은 물론 당신이 당신이 좋아하는 인덱스 아무것도 할 수 있습니다. 인덱스는 위에 표시된대로 Array 또는 Symbol 일 수 있으며 인덱스 자체에 속성을 넣고 인덱스가 호출되는 것을 원하지 않는 경우에는 단지 true 일 수 있습니다.

+0

감사합니다. 나는 이것이 : : collect_on 속성 위에있는 source_id 속성을 이동 한 한 특정 예제에서 작동 할 수 있다고 생각합니다. 즉, index_two는 [: collected_on, : source_id] 대신 [: source_id, : collected_on]이됩니다. 두 주문 모두에 대한 색인이 필요한 경우 어떻게 할 것입니까? – Chris

+0

고유 인덱스의 경우': index =>'대신': unique_index =>'를 사용하십시오. 잘 숨겨진 문서는 [here] (http://rubydoc.info/github/datamapper/dm-core/master/DataMapper/Property)에서 찾을 수 있습니다. –

관련 문제