Question

Dans DataMapper, comment pourrait-on préciser la combinaison de deux champs doit être unique. Par exemple, les catégories doivent avoir des noms uniques dans un domaine:

class Category
  include DataMapper.resource
  property :name, String, :index=>true #must be unique for a given domain

  belongs_to :domain
end
Était-ce utile?

La solution

Avez-vous essayé de définir les propriétés que les clés? Pas sûr que je l'ai essayé, mais cette façon ils devraient devenir une clé composite.

property :name, String, :key => true    
property :category, Integer, :key => true

Autres conseils

Vous devez créer un index unique pour les deux propriétés:

class Category
  include DataMapper::Resource

  property :name, String, :unique_index => :u
  property :domain_id, Integer, :unique_index => :u

  belongs_to :domain
end

En fait, John, la réponse de Joschi est correcte: l'utilisation des nommés: valeurs unique_index ne crée un index à colonnes multiples; il est important de lire la partie droite de ces hachage roquettes (à savoir, si elle venait d'être true, vous auriez raison).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top