Могут ли свойства DataMapper присутствовать в нескольких составных индексах? - PullRequest
3 голосов
/ 27 января 2010

Я обнаружил, что эта проблема обсуждалась в Ticket # 58 DataMapper, по-видимому, еще в 2007 году, но я не могу найти, как это сделать в последней версии (dm-core-0.10 0,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

Как правильно это сделать?

1 Ответ

2 голосов
/ 04 февраля 2010

Вы можете сделать это:

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, если вы хотите поместить свойство в индекс самостоятельно и вам все равно, как называется индекс.

...