Azure CosmosDB-评论系统模型
我是Azure的新手,正在尝试使用他们的CosmosDB作为评论系统。在文件中,它建议对评论系统进行如下建模:Azure CosmosDB-评论系统模型,azure,azure-cosmosdb,Azure,Azure Cosmosdb,我是Azure的新手,正在尝试使用他们的CosmosDB作为评论系统。在文件中,它建议对评论系统进行如下建模: Post item: { "id": "1", "name": "What's new in the coolest Cloud", "summary": "A blog post by someone real famous", "recentComments": [ {"id": 1, "author": "anon", "comme
Post item:
{
"id": "1",
"name": "What's new in the coolest Cloud",
"summary": "A blog post by someone real famous",
"recentComments": [
{"id": 1, "author": "anon", "comment": "something useful, I'm sure"},
{"id": 2, "author": "bob", "comment": "wisdom from the interwebs"},
{"id": 3, "author": "jane", "comment": "....."}
]
}
Comment items:
{
"postId": "1"
"comments": [
{"id": 4, "author": "anon", "comment": "more goodness"},
{"id": 5, "author": "bob", "comment": "tails from the field"},
...
{"id": 99, "author": "angry", "comment": "blah angry blah angry"}
]
},
{
"postId": "1"
"comments": [
{"id": 100, "author": "anon", "comment": "yet more"},
...
{"id": 199, "author": "bored", "comment": "will this ever end?"}
]
}
对于Post集合,我理解“id”是一个很好的分区键,并且我理解如何插入和查询此项
我不知道如何插入和查询语法和逻辑方面的注释。对于评论集:
- 分区密钥是什么
- 如果用户想要发布新的评论,我将如何(逻辑和语法)发布 知道要将其插入到哪个项目中,以及如何知道数组 是满的,如果我必须创建一个新的项目,如果100限制被取消 达到
- 关于上一个问题,这将如何处理两个问题 用户同时添加评论(事务)?如果第一个 用户填写100个限制的最后一个空格,注释如何 来自第二个用户知道它需要插入新的 项目
谢谢。不幸的是,这是一组非常广泛的问题,没有“正确”的答案(另外,你问了几个问题,而不是一个)。关于您的模式(以及您的第二个要点),需要记住一件事:您有一个“无限数组”条件——没有什么可以阻止无限的注释(直到您在单个文档中用完空间)。而尝试“创建一个新项目”并不是一个理想的解决方案(实际上,您正在构建自己的链接列表)。我会花些时间考虑你如何安排得更好。(也不确定你指的是什么“100限制”。@DavidMakogon这是azure官方文档中的模型,他们建议对评论系统进行建模。没有单一的方法对评论系统进行建模。我不知道你指的是什么文档,因为没有链接。也许它是作为一个例子写的?我指出了该模型在现实世界中的局限性(还有其他问题,比如每次添加/编辑/删除评论时都需要阅读/更新/编写一个博客文档,而当你只想要一篇没有评论的文章时,就需要承担所有额外的重量)。这只是一个例子,说明为什么这个问题是离题的:非常广泛。建模选择将取决于您的应用程序、查询需求等@DavidMakogon。我想做与文档中描述的基本相同的事情。我需要在帖子下插入评论,我需要批量获取帖子的评论。请重新阅读该页面:它明确指出了以这种方式存储评论的无界数组问题,然后提出了一种替代模型。至于你想插入什么:我建议从一个新问题开始,具体到你的插入问题。展示你的尝试,你的困境,预期与实际输出,错误等等。我真的不知道在这一点上还能说些什么。不妨把这篇文章作为评论发表,因为根本没有办法客观地回答这个问题。此外,他们还提出了一系列问题,但实际上并没有针对任何问题提出任何具体问题(只是“我如何做到这一点”被认为是离题的)。我试着用很多不同的方式来解释这一点。我甚至指出OP尝试的那篇文章实际上指出了无界数组的问题。