我正在尝试将标记系统silimar实现为StackOverflow所具有的标记系统。显然我已经阅读了多篇文章,包括answer。
但是我的情况有点不同
tags
列中,然后用LIKE
查询)我想特别是第二个标准让它变得更难,所以这些是我的想法
tags
,并且每个表都有M:N关系。然而,这会使搜索变得更难(想象如果表号增长则加入),并且我还需要告诉哪个表(应用程序模块)与搜索结果中的标记匹配我使用最新版本的PostgreSQL。感谢您的任何提示
答案 0 :(得分:1)
由于您使用的是PostgreSQL,因此您可以选择某些字段类型,这些字段类型不适用于其他数据库。特别是,数组和JSON字段。我对a blog post中的各种方法进行了一些性能比较。对于任何需要组合多个标签的搜索,数组和JSONB绝对比标签表更好。
鉴于此,我建议为每个要为其创建标记的表创建一个标记列,具体取决于数组或JSONB列。如果你需要搜索多个表,我建议使用UNION查询,而不是只有一个单一的标签表连接到所有表。