سؤال

في 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

في الواقع ، John ، إجابة Joschi صحيحة: استخدام قيم quision_index الفريدة: يقوم بإنشاء فهرس متعدد العمود ؛ من المهم قراءة الجانب الأيمن من هذه التجزئة (أي ، إذا كان الأمر كذلك true, ، ستكون على حق).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top