2012-05-03 15 views

答えて

3

http://www.yesodweb.com/book/persistentを参照してください

CONSTRAINT pk_PersonID PRIMARY KEY (first_name,last_name) 

セクション一意

Person 
    firstName String 
    lastName String 
    age Int 
    PersonName firstName lastName 
    deriving Show 

たとえば、その後、SQL構文で私のようなものが必要になるでしょう、私はFIRST_NAMEとLAST_NAMEを含むテーブルを持っていると仮定

firstNameとlastNameの両方で構成された一意のキーを定義します。

+1

それはそれをユニークにしますが、プライマリキーにしますか? –

+0

デフォルトでは、プライマリキーで内部的に使用される整数IDフィールドがあります。なぜ特定のプライマリキーが必要ですか?実際にあなたがしている場合、私はバニラPersistentを使用してそれを行うことはできないと思う、あなたは自分でテーブルをコーディングする必要があります。 –

+1

私は既存のアプリケーションと共有されている既存のテーブルを使用しています...私はいくつかの回避策でこれを克服する必要があるかのようです。 –

3

Primary <field1> <field2>の構文は、以下のコードで使用できます。

PrimaryCompositeWithOtherNullableFields 
    foo String  maxlen=20 
    bar String  maxlen=20 
    baz String Maybe 
    Primary foo bar -- THIS LINE -- 
    deriving Eq Show 
    enter code here 

上記コードはhttps://github.com/yesodweb/persistent/blob/master/persistent-test/src/CompositeTest.hs#L74

This wiki pageでテストのいずれかから取得され、永続的なモデルを定義するための別の構文を説明しています。それは本当にイエズド書の一部であったはずです。

関連する問題