当前位置: 首页 > 知识库问答 >
问题:

Firebase FiRecovery数据库结构

百里俭
2023-03-14

我正在使用Flatter和firebase构建一个应用程序,我想知道最好的firestore数据库结构是什么。

我希望用户能够发布消息,然后通过帖子内容和海报用户名进行搜索。

为用户创建一个集合,每个文档存储用户名和其他信息,并为帖子创建一个单独的集合,每个文档包含帖子和海报的用户名,这是否有意义?

万一帖子数量超过一百万或更多,查询这种大规模收集是否会产生额外的成本?

将每个用户的帖子作为子集合存储在用户文档下是否更有意义?我相信这需要额外的读取操作来访问每个文档的子集合。如果我最终获得了大量流量,这会更便宜还是更贵?

共有1个答案

丁德义
2023-03-14

查询这种大规模收集是否需要额外的成本?

从Firestore读取的成本和性能完全取决于您检索的数据量(文档数量及其大小),而不是集合中的文档数量。

但是FiRecovery中的限制是您可以对“彼此接近”的数据进行的写入次数。这种故意模糊的定义意味着,如果数据自然适合这样做(例如在您的情况下),那么将数据分布在单独的子集合上通常更有利于写入可扩展性。

要获得有关FiRecovery和数据建模权衡的精彩介绍,请观看了解Cloud FiRecovery。

 类似资料:
  • PHPSSO 数据库结构[更新日期:2010-12-28] 点击查看 PHPCMS 数据库结构[更新日期:2010-12-28] 点击查看

  • 如果需要在程序中 Dump 数据库的结构和数据可以调用 engine.DumpAll(w io.Writer) 和 engine.DumpAllToFile(fpath string)。 DumpAll 方法接收一个io.Writer接口来保存Dump出的数据库结构和数据的SQL语句,这个方法导出的SQL语句并不能通用。只针对当前engine所对应的数据库支持的SQL。 Import 执行数据库S

  • 问题内容: 我有一个专栏 组 。 群组 具有存储在group_types中的不同类型(买方,卖方,裁判)。只有当该组是买方类型时,它才具有另一种(更专门)的类型,例如电气和机械类型。 我对如何将其存储在数据库中感到有些困惑。 有人可以建议我一个数据库结构吗? 谢谢 问题答案: 将您的存储为层次结构表(带有或模型): : 将选择中的所有买家。 : 将选择任何数据库中的所有买家。 如果您不需要层次结构

  • 同步能够部分智能的根据结构体的变动检测表结构的变动,并自动同步。目前有两个实现: Sync Sync将进行如下的同步操作: * 自动检测和创建表,这个检测是根据表的名字 * 自动检测和新增表中的字段,这个检测是根据字段名 * 自动检测和创建索引和唯一索引,这个检测是根据索引的一个或多个字段名,而不根据索引名称 调用方法如下: err := engine.Sync(new(User), ne

  • 无论何时可能需要将数据库状态设置为静态,意味着数据库未响应任何读取和写入操作的状态。 简单地说,数据库处于冻结状态。 在本章中,可以学习如何从OrientDB命令行冻结数据库。 以下语句是冻结数据库命令的基本语法。 注 - 只有在连接到远程或本地数据库中的特定数据库后,才能使用此命令。 示例 在这个例子中,我们将使用我们在前一章中创建的名为的数据库。 我们将从CLI冻结这个数据库。 可以使用以下命

  • 我的应用程序有以下场景: 1个生产服务器 1个测试服务器 n开发计算机 对于数据库迁移,我们使用Hibernate Schema Update For the Schema和DBUnit来填充所有生产数据(在所有服务器/计算机上)。当模式更新完成后,我为新模式生成一个新的DTD文件,这样我就可以重新导入DBUnitXML。应用程序在启动时使用XML文件更新数据库(仅在开发和测试服务器/计算机上!)