Hãy xem xét các mô hình:cách đúng để làm một "tham gia" trong kiên trì với 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
và chức năng
getGamingSessionsR :: Handler RepHtml
getGamingSessionsR = do
sessions <- runDB $ selectList [GamingSessionEnd ==. Nothing] [Desc GamingSessionTable]
defaultLayout $(widgetFile ("opensessions"))
thế nào người ta sẽ đi về nhận được tất cả các tên Player cho mỗi người trong số các phiên liên quan?
làm
players <- runDB $ selectList [FilterOr . map (\(Entity _ s) -> PlayerId ==. (GamingSessionPlayer s)) $ sessions] []
nhận được danh sách các cầu thủ; nhưng nó không được liên kết với các phiên tại tất cả
Chúng tôi có hỗ trợ tham gia 1 đến nhiều và được triển khai cả về tham gia SQL và tham gia ứng dụng, vì vậy nó có thể hoạt động cho cả SQL hoặc chương trình phụ trợ NoSQL. Hiện tại nó đã được ghi nhận kém, nhưng hy vọng rằng nó có thể được giải quyết sớm. –
Tôi không nghĩ rằng làm một tham gia trong Haskell, một cái gì đó mà một RDBMS nên được làm ở nơi đầu tiên, có thể được coi là một câu trả lời chấp nhận được. Đặc biệt, đối với thế giới/cộng đồng mà Haskell sinh sống. –