我有以下持久模型
Tag
name String
description String
UniqueName name
Post
caption String
text String
created UTCTime
tags [TagId]
deriving Show
是否可以在字段TagId
中选择包含指定tags
的所有帖子?或者我需要创建新模型来处理多对多关系?
PS抱歉我的英语不好
答案 0 :(得分:2)
不,因为类似列表的列不是SQL的一部分。
实际上,您的tags
列在SQLite中定义为"tags" VARCHAR NOT NULL
。
如果您想在Post
上运行任何类型的非平凡查询,我强烈建议您重新设计架构。
从tags
删除Post
并添加下表可让您获取特定标记的所有帖子。
TagPost
tagId TagId
postId PostId
UniqueTagPost tagId postId
λ> tagPosts <- selectList [TagPostTagId ==. yourTagId] []
您可能还想查看Esqueleto,它将允许您编写类型安全连接(persistent
默认情况下不提供的内容,因为它必须与MongoDB保持兼容)。< / p>