gpt4 book ai didi

mongodb - Nosql数据库设计-MongoDB

转载 作者:行者123 更新时间:2023-12-02 09:29:38 27 4
gpt4 key购买 nike

我正在尝试构建一个只有这 3 个模型的应用程序:

  • 主题(只有一个标题(最多 100 个字符。))
  • 评论(包含文本(可能很长)、author_idtopic_idcreatedDate)<
  • 作者(只有用户名)

实际上是一个非常简单的数据库结构。一个主题可能有许多评论,这些评论是由作者创建的。并且一个作者可能有很多评论。

我仍在试图找出设计数据库结构(文档)的最佳方法。首先,我想将所有内容都放入其自己的模式中,如上面所示。 3 文件。但由于这是一个 nosql 数据库,我实际上应该尝试消除对连接的需求。现在我真的在考虑将所有内容都放在一个文档中,这听起来也很疯狂。

这些是我来自用户界面的实际查询:

  • 首页查询:列出今天收到最多评论的所有主题(会经常运行)
  • 搜索字段的自动建议列表:列出标题包含字符串“X”的所有主题
  • 主题查询的主页:列出某个主题的所有评论及其作者的用户名。

由于我的大多数查询都需要来自至少 2 个文档的数据,我是否真的应该在一个文档中将它们全部一起使用,如下所示:

评论(文本用户名主题标题创建日期)

这样我就不需要任何加入,而且还可以多次保存主题标题..在每条评论中..

我就是无法决定。

感谢任何帮助。

最佳答案

您可以进行您建议的第二种设计,但这一切都取决于您想要如何使用数据。我假设您将把它用于网站。

如果您希望评论可点击,这样点击主题名称将重定向到主题页面,或者点击用户名将重定向到用户页面,您可以在其中看到他的所有评论,我建议您将它们保留为身份证。因为您稍后可以使用 .populate(“field1 field2”) 并且可以选择您想要从该 ID 获取的字段。

或者,您可以将 topic_name 和用户名及其 ID 存储在同一文档中以减少查询,但最终会存储更多冗余数据。

关于mongodb - Nosql数据库设计-MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58792554/

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