gpt4 book ai didi

database - 如何在cosmos db中构建多对多关系

转载 作者:行者123 更新时间:2023-12-04 14:15:59 25 4
gpt4 key购买 nike

我正在开发一个新项目,有人建议我看看 Cosmos DB 以用于我的数据存储,因为它将成为一个全局 SaaS 应用程序,为潜在的数十万用户提供服务。

由于这是我第一次涉足 NoSQL 数据库,我不可避免地遇到了很多需要学习的东西,但我觉得我已经慢慢掌握了它,并且实际上对此感到非常兴奋。

现在问题来了:我有一个相对简单的数据结构,我似乎无法理解如何实现,而且我几乎已经接受了这样一个事实:它可能只是一个工作负载这在非关系数据库中并不能很好地工作。但正如我所说,我完全是绿色的,所以我来这里是为了进行健全性检查,以防我遗漏了一些明显的东西

我有一个由“用户”对象和“帖子”对象组成的数据结构,我需要根据无界标签数组将它们关联起来,以基本上创建自定义的提要,它们看起来像这样

用户:

{
id: 1,
name: "username",
interests: [
"fishing",
"photography",
"stargazing",
]
}

帖子:

{
id: 1,
title: "My post title",
body: "My post content",
tags: [
"tennis",
"sport",
"photography",
]
}

我想返回所有帖子的列表,这些帖子的标签中包含一个或多个给定用户的兴趣,因此基本上是这样的查询:

SELECT DISTINCT VALUE Posts FROM Posts
JOIN tag IN Posts.Tags
WHERE tag IN <<user.interests>>

在 SQL 中,我创建一个用户表和一个帖子表,并根据共享标签/兴趣将它们连接起来,但我一生都无法弄清楚如何对其进行非规范化(如果可能的话)。在我第一次尝试仅使用 2 个对象时,我是否真的遇到了 NoSQL 不可能的流程之一?或者我只是个菜鸟?

最佳答案

你走在正确的道路上!有两篇非常好的文章描述了如何为 NoSQL 数据建模。如果您不熟悉这种类型的数据存储,绝对值得一读。

Data modeling in Azure Cosmos DB ,特别是关于多对多关系的部分。

How to model and partition data on Azure Cosmos DB using a real-world example

希望您觉得这有帮助。

关于database - 如何在cosmos db中构建多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60299547/

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