在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]