Considere los modelos:forma correcta de hacer un "unirse" en persistir con yesod
Player
name Text
nick Text
email Text Maybe
phone Text Maybe
note Textarea Maybe
minutes Int Maybe
deriving
Table
name Text
game Text
pointsHour Int
seats Int Maybe
description Text Maybe
deriving
GamingSession
start UTCTime
end UTCTime Maybe
player PlayerId
table TableId
seat Int Maybe
deriving
y la función
getGamingSessionsR :: Handler RepHtml
getGamingSessionsR = do
sessions <- runDB $ selectList [GamingSessionEnd ==. Nothing] [Desc GamingSessionTable]
defaultLayout $(widgetFile ("opensessions"))
cómo uno va sobre conseguir todos los nombres del jugador para cada uno de las sesiones asociadas?
haciendo
players <- runDB $ selectList [FilterOr . map (\(Entity _ s) -> PlayerId ==. (GamingSessionPlayer s)) $ sessions] []
obtiene la lista de jugadores; pero no está asociado con las sesiones en absoluto
Tenemos soporte para una unión 1-to-many, y se implementa tanto en términos de una combinación de SQL y una aplicación, por lo que puede funcionar para SQL o backends NoSQL. Está mal documentado en este momento, pero espero que pueda abordarse pronto. –
No creo que hacer una unión en Haskell, algo que un RDBMS debería estar haciendo en primer lugar, puede considerarse una respuesta aceptable. Especialmente, para el mundo/comunidad que habita Haskell. –