многопольный уникальный индекс datamapper datamapper
-
21-09-2019 - |
Вопрос
В Datamapper, как бы указать, что комбинация двух полей должна быть уникальной.Например, категории должны иметь уникальные имена в пределах домена:
class Category
include DataMapper.resource
property :name, String, :index=>true #must be unique for a given domain
belongs_to :domain
end
Решение
Вы пытались определить оба свойства как ключи?Не уверен, что я пробовал это, но таким образом они должны стать составным ключом.
property :name, String, :key => true
property :category, Integer, :key => true
Другие советы
Вы должны создать уникальный индекс для двух свойств:
class Category
include DataMapper::Resource
property :name, String, :unique_index => :u
property :domain_id, Integer, :unique_index => :u
belongs_to :domain
end
На самом деле, Джон, ответ Джоши правильный:использование значений named :unique_index создает индекс с несколькими столбцами;важно прочитать правую часть этих хэш-ракет (т. Е., если бы это только что было true
, вы были бы правы).
Не связан с StackOverflow