многопольный уникальный индекс datamapper datamapper

StackOverflow https://stackoverflow.com/questions/1370518

  •  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, вы были бы правы).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top