Поле Yesod/Persistent с уравнением

В главе Persistent книги Yesod определенному полю присваивается суффикс 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 следует использовать помимо отношений?


person arussell84    schedule 31.12.2012    source источник


Ответы (1)


Я думал, что избавился от всего этого ... это просто пережиток старых дней Persistent, где требовалось Eq. В наши дни он ничего не делает, и вы можете сравнить равенство во всех полях.

Проверку на равенство можно использовать во многих случаях, например, «найти все сообщения автора»:

selectList [PostAuthor ==. userId] [Desc PostDate]
person Michael Snoyman    schedule 31.12.2012
comment
Спасибо за ответы на мои вопросы и даже за исправление документации! - person arussell84; 31.12.2012