预留时间,相约 2024 年 Firebase 演示日了解如何构建和运行用户喜爱的现代化 AI 应用。
了解详情。
选择数据结构
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
请注意,在 Cloud Firestore 中设计数据结构时,您可以使用几种不同的方案:
请根据您的使用场景考虑每种选项的优势。本指南概述了分层数据的一些示例结构。
文档中的嵌套数据
您可以在文档中嵌套复杂的对象,例如数组(映射)。
- 优点:如果您想在文档中保存简单的固定数据列表,可使用此选项,它易于设置,而且可简化数据结构。
-
限制:
此方案的可扩缩性不如其他方案,特别是数据会随时间不断增加的情况。如果列表较大或者越来越大,文档也会变大,这可能导致文档检索时间增加。
- 此方案适用于哪些使用场景?例如,在聊天应用中,您可以将用户最近进入的 3 个聊天室作为嵌套列表存储在其个人资料中。
|
- class alovelace
- name :
first : "Ada"
last : "Lovelace"
born : 1815
rooms :
0 : "Software Chat"
1 : "Famous Figures"
2 : "Famous SWEs"
|
子集合
如果您的数据可能会随着时间的推移而增加,您可以在文档中创建集合。
- 优点:当您的列表变大时,父文档的大小不会改变。您还可以获得对子集合的完整查询功能,并且可以跨子集合发出集合组查询。
- 限制:您无法轻松删除子集合。
- 此方案适用于哪些使用场景?例如,在前述聊天应用中,您可以在聊天室文档中为用户或消息创建集合。
|
- collections_bookmark science
- class software
name : "software chat"
- collections_bookmark
users
- class
alovelace
first : "Ada"
last : "Lovelace"
- class
sride
first : "Sally"
last : "Ride"`
- class astrophysics
|
根级集合
在数据库的根级别上创建集合,以整理不同的数据集。
- 优点:根级集合适合多对多关系,并在每个集合内提供强大的查询功能。
- 限制:随着数据库增大,获取自然分层的数据可能会变得越来越复杂。
- 此方案适用于哪些使用场景?例如,在前述聊天应用中,您可以为用户创建一个集合,为聊天室和消息创建另一个集合。
|
- collections_bookmark
users
- class alovelace
first : "Ada"
last : "Lovelace"
born : 1815
- class sride
first : "Sally"
last : "Ride"
born : 1951
- collections_bookmark rooms
- class software
- collections_bookmark
messages
- class
message1
from : "alovelace"
content : "..."
- class
message2
from : "sride"
content : "..."
|
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-11-19。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-11-19。"],[],[]]