DataMapperのマルチフィールド一意のインデックス
-
21-09-2019 - |
質問
DataMapperのは、どのように1、2つのフィールドの組み合わせは一意でなければなりません指定します。
:たとえば、カテゴリは、ドメイン内で一意の名前を持つ必要があります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
他のヒント
次の2つの性質のためのユニークなインデックスを作成する必要があります:
class Category
include DataMapper::Resource
property :name, String, :unique_index => :u
property :domain_id, Integer, :unique_index => :u
belongs_to :domain
end
実際には、ジョンは、Joschiの答えは正しいです:という名前の使用:unique_index値は複数列のインデックスを作成しません。それは(それだけでtrue
されていた場合、すなわち、あなたが正しいだろう)、それらのハッシュロケットの右側を読むことが重要です。
所属していません StackOverflow