如何构建社交网络数据库结构,例如twitter
我们可以在我们的时间线中关注用户并获取他们的所有推文,我已经检查过了Firestore - 如何构建 feed 和 follow 系统 https://stackoverflow.com/questions/46979375/firestore-how-to-structure-a-feed-and-follow-system但帖子中的解决方案看起来有缺陷。
Firestore 是不同的,它需要冗余数据才能有效地访问数据,但假设我正在关注 1000 人,并且如果我需要通过查询我关注和使用的每 15 个用户的数据来获取所有这些用户的帖子limit(10)
那么方法orderBy(timeStamp)
查询之间可能有未读的帖子,因为我们正在使用last post timeStamp
,如何在 Firestore 中构建社交媒体应用的数据
在 NoSQL 数据库上建模用例时,您倾向于针对应用程序的功能以及频繁的读取操作进行优化。
因此,在社交媒体应用程序中,您的主要功能可能是用户可以看到他们关注的每个人的最新帖子。为了优化此操作以实现频繁读取,您需要将每个用户应看到的帖子存储在该用户的文档中。因此,与 Twitter 相比,您几乎拥有一个包含每个用户的 Twitter feed 的文档。或者,如果单个文档的数据太多,您可能希望将其放入集合中。我经常将此解释为在数据库中对应用程序的屏幕进行建模。
这与关系数据库中的典型数据模型有很大不同,因此需要时间来适应是正常的。为了获得良好的介绍,我建议:
- Reading NoSQL 数据建模 https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/.
- 观看面向 SQL 开发人员的 Firebase https://www.youtube.com/playlist?list=PLl-K7zZEsYLlP-k-RKFa7RyNPa9_wCH2s,尽管它是针对实时数据库的,但它解释了如何将常见 SQL 概念映射到 Firebase 的 NoSQL 模型。
- 观看了解 Cloud Firestore https://www.youtube.com/playlist?list=PLl-K7zZEsYLluG5MCVEzXAQ7ACZBCuZgZ
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)