我发现这个问题已经在DataMapper的Ticket #58中讨论过了,显然早在2007年就已经讨论过了,但我在最新版本(dm-core-0.10.2)中找不到如何做到这一点。我想定义两个复合索引,每个索引部分基于某个属性。我希望我能做到这一点......
class Stat
include DataMapper::Resource
property :id, Serial,
property :collected_on, Integer #yyyyMMddhhmm
property :measure, Integer
property :dimension_one, Integer
property :dimension_two, Integer
property :source_id, Integer
index [:collected_on, :dimension_one, :dimension_two]
index [:source_id, :collected_on]
end
这样做的正确方法是什么?
答案 0 :(得分: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
索引被调用。