gpt4 book ai didi

mongodb - 标签系统的架构

转载 作者:可可西里 更新时间:2023-11-01 10:23:53 27 4
gpt4 key购买 nike

我正在使用 Meteor 开发 Web 应用程序。我正在做一个标签系统,可以为一个主题分配零个或多个标签。 我想根据当前主题的标签在底部显示 10 个相关主题。我脑子里有两个模式

选项 1:

主题:

{
_id: {
type: String,
optional: false,
unique: true
},
name: {
type: String,
max: 255,
optional: false
}
//other fields..
}

标签:

{
_id: {
type: String,
optional: false,
unique: true
},
name: {
type: String,
max: 255,
optional: false
}
//other fields..
}

主题标签

{
tagId: {
type: String,
optional: false
},
topicId: {
type: String,
optional: false
}
}

在此选项中,TopicsTags 是包含主题和标签之间关系的联结表

选项 2:

主题:

{
_id: {
type: String,
optional: false,
unique: true
},
name: {
type: String,
max: 255,
optional: false
},
tags: {
type: [String]
}
//other fields..
}

标签:

{
_id: {
type: String,
optional: false,
unique: true
},
name: {
type: String,
max: 255,
optional: false
}
//other fields..
}

在此选项中,有一个包含所有标签 ID 的附加字段。我想知道meteor和mongodb最常用标签查询前10个相关主题哪个更好。如果你们能指出任何关于如何查询包含所选主题标签的热门帖子的在线资源,那就更好了。我已搜索但无法获得足够的信息。

我知道当我们向主题添加新标签时,第二种方法会很复杂,但只要读取速度很快就没问题。

编辑主要问题是哪种模式更好(或有可能)获得相关主题。例如,如果“主题 1”得到“标签 1”、“标签 2”、“标签 3”。我想在以下首选项中获得前 10 个相关主题

  1. 具有所有三个标签(“标签 1”、“标签 2”、“标签 3”)的其他主题。
  2. 如果上述条件少于 10 条记录,那么我希望剩余的记录有两个标签((“标签 1”和“标签 2”)或(“标签​​ 2”和“标签 3”)或(“标签​​ 1”和标签 3")
  3. 如果上述两个条件加起来少于 10 条记录,那么我希望剩余的记录至少包含一个标签(“标签 1”或“标签 2”或“标签 3”)

非常感谢任何帮助。

最佳答案

我会将标签信息(您想与主题一起显示)作为主题文档本身的数组包含在内。您阅读此信息的次数将多于您更新它的次数。主题的标签不会经常更改。

关于mongodb - 标签系统的架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35740995/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com