当前位置:  开发笔记 > 编程语言 > 正文

在nosql/Parse数据模型设计中苦苦挣扎

如何解决《在nosql/Parse数据模型设计中苦苦挣扎》经验,为你挑选了1个好方法。

我已经习惯了SQL和关系设计,所以我对我当前的项目感到有些困惑.这是怎么回事:

有一些叫做"Bubbles"的东西与Google Circle基本相同.它们是用户定义的,可以将任何PFUser作为"成员".

然后有"帖子".每个帖子都有一个可见性设置,它是一组PFUser(或气泡).

应用程序的工作原理是用户制作他/她的泡泡,然后可以浏览Feed/post to bubbles.这个问题变得棘手的原因是:当应用程序启动并且我想查询特定用户的帖子时,我首先需要找到属于他们的气泡(很容易),然后我需要让用户进入这些气泡,然后我需要查询这些用户的帖子,然后我需要确保我在那些帖子的可见性.我尝试制作云代码函数,但由于异步调用弄乱了for循环的索引,因此无法填充字典的帖子部分.

无论如何,我正在拔出我的头发试图找出最好的nosql方法来做到这一点.任何帮助,Parsers?



1> Marius Walda..:

那里有一个大问题.我不能为你创建一个模型,但我可以给你一些关于你需要思考的提示.

首先,正如您似乎已经发现的那样,您需要停止考虑此任务的关系设计术语.对于所有在SQL数据库中受过教育的人(我们大多数人,仍然是),这是一个漫长的过程.许多NoSQL方法在我们的关系思想中都表现不佳.

其次,您需要专注于数据提取.使用该模型无疑会在您的脑海中形成(甚至可能实现),快速提取所需数据所需的查询变得非常复杂.而且由于您的客户端可能主要是(仅限?)移动设备,因此您需要将查询次数和计算开销降至最低.

第三,如果你相信你的应用程序可能会出现在图表中并且变得非常流行(假设你没有设计企业应用程序),那么你需要设计可扩展性.不一定完美地实现它,但至少为它设计,以便你可以通过改进它来构建你的初始设计,而不是在应用程序变得流行时完全重建它(如果你的努力无法跟上,那么就有可能发生全面的灾难不断增长的用户群).

作为一个典型的例子; 如果您需要由用户列表创建的帖子列表,则不首先获取用户,然后查询这些用户的帖子.您准备架构,以便将此帖子列表(以及通常请求的其他结果列表)作为架构的一部分进行准备.这可以是feed的表(解析类).每个用户一条记录,该记录包含预先准备的Feed数组.每次我关注的用户写新帖时都需要更新.跟随帖子的作者的所有其他用户的记录也是如此!在那里,我刚刚在你的关系思想中打了一个坏话,不是吗?:-)

现在,对于实现细节,我建议您看一下NoSQL架构设计示例.我发现"Twissandra"(在Apache Cassandra中实现的Twitter克隆)是如何设计NoSQL的非常好的入门读物.特别是因为Twitter是一个用例,我们可以轻松地与之相关.尽管Parse由MongoDB支持,而不是Cassandra,但大多数原则仍然存在:http://www.rackspace.com/blog/cassandra-by-example/

此外,比较本演示文稿中的第6页和第7页,可以很好地了解SQL和NoSQL之间不同的这种模式设计:https: //speakerdeck.com/mongodb/mongodb-dc-2012-schema-design-by-example

我建议您在阅读这些(可能还有其他)文章之后尝试(重新)设计您的模式,然后在需要时在SO上询问与您的实现相关的更多具体问题.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有