Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure CosmosDB-评论系统模型_Azure_Azure Cosmosdb - Fatal编程技术网

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

我是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", "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个限制的最后一个空格,注释如何 来自第二个用户知道它需要插入新的 项目

  • > p>如果需要删除数组中间的项50,我将如何重新调整所有注释以适合于适当的数组?


我们绝对不建议以这种方式对数据进行建模

不应嵌入无界数组。请看这个


谢谢。

不幸的是,这是一组非常广泛的问题,没有“正确”的答案(另外,你问了几个问题,而不是一个)。关于您的模式(以及您的第二个要点),需要记住一件事:您有一个“无限数组”条件——没有什么可以阻止无限的注释(直到您在单个文档中用完空间)。而尝试“创建一个新项目”并不是一个理想的解决方案(实际上,您正在构建自己的链接列表)。我会花些时间考虑你如何安排得更好。(也不确定你指的是什么“100限制”。@DavidMakogon这是azure官方文档中的模型,他们建议对评论系统进行建模。没有单一的方法对评论系统进行建模。我不知道你指的是什么文档,因为没有链接。也许它是作为一个例子写的?我指出了该模型在现实世界中的局限性(还有其他问题,比如每次添加/编辑/删除评论时都需要阅读/更新/编写一个博客文档,而当你只想要一篇没有评论的文章时,就需要承担所有额外的重量)。这只是一个例子,说明为什么这个问题是离题的:非常广泛。建模选择将取决于您的应用程序、查询需求等@DavidMakogon。我想做与文档中描述的基本相同的事情。我需要在帖子下插入评论,我需要批量获取帖子的评论。请重新阅读该页面:它明确指出了以这种方式存储评论的无界数组问题,然后提出了一种替代模型。至于你想插入什么:我建议从一个新问题开始,具体到你的插入问题。展示你的尝试,你的困境,预期与实际输出,错误等等。我真的不知道在这一点上还能说些什么。不妨把这篇文章作为评论发表,因为根本没有办法客观地回答这个问题。此外,他们还提出了一系列问题,但实际上并没有针对任何问题提出任何具体问题(只是“我如何做到这一点”被认为是离题的)。我试着用很多不同的方式来解释这一点。我甚至指出OP尝试的那篇文章实际上指出了无界数组的问题。