【发布时间】:2012-05-13 01:49:49
【问题描述】:
如何向 Persistent 声明我有一个主键是两个字段组合的表?
例如,假设我有一个包含 first_name 和 last_name 的表,那么在 SQL 语法中我需要类似:
CONSTRAINT pk_PersonID PRIMARY KEY (first_name,last_name)
谢谢,
【问题讨论】:
标签: haskell persistent yesod
如何向 Persistent 声明我有一个主键是两个字段组合的表?
例如,假设我有一个包含 first_name 和 last_name 的表,那么在 SQL 语法中我需要类似:
CONSTRAINT pk_PersonID PRIMARY KEY (first_name,last_name)
谢谢,
【问题讨论】:
标签: haskell persistent yesod
您可以按照下面的代码使用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 解释了在持久化中定义模型的不同语法。它真的应该是 Yesod 书的一部分。
【讨论】:
参见http://www.yesodweb.com/book/persistent,唯一性部分
Person
firstName String
lastName String
age Int
PersonName firstName lastName
deriving Show
这定义了一个由 firstName 和 lastName 组成的唯一键。
【讨论】: