具有Eq的Yesod/Persistent字段



在Yesod的Persistent章节中,某个字段被赋予了Eq后缀,但从未解释为什么。在关系部分,我们看到以下模型:

Person
    name String
    deriving Show
Car
    ownerId PersonId Eq
    name String
    deriving Show

不久之后,我们看到:

Person
    name String
Store
    name String
PersonStore
    personId PersonId
    storeId StoreId
    UniquePersonStore personId storeId

除了后者是多对多之外,还有什么区别?我在IRC上收集到Eq后缀允许在该字段上加入。如果是这样的话,为什么一个人会想要Eq后缀呢?除了关系之外,还有其他需要使用Eq的情况吗?

我以为我已经摆脱了所有这些…它只是从以前的Persistent中遗留下来的,在那里需要Eq。现在,它不做任何事情,你可以比较所有字段的相等性。

相等性测试可用于很多情况,例如"查找同一作者的所有文章":

selectList [PostAuthor ==. userId] [Desc PostDate]