firebase - 旅行计划者的 Firestore 数据建模
问题描述
我正在构建一个涉及使用颤振进行旅行计划的应用程序。这个应用程序将帮助人们计划他们的旅行,为他们提供一些选择,让他们从最便宜、最快、最短等中进行选择。
我对 firebase 很陌生,我需要一些有关数据结构的建议,我正在考虑使用公共交通工具,例如train
. 这列火车会有自己的时刻表。在 Firestore 内构建此时间表的最佳方式是什么?这样我就可以创建一个显示火车时刻表的视图。
解决方案
如果是我,我会想清楚我打算如何与应用程序交互。我通常用手画出来,因为我发现它比尝试以电子方式建模要快得多。我同时查看其他类似的应用程序,并尝试识别丢失的数据。从简单开始并建立您想要包含的各种数据点。
主要需要注意的是,Cloud Firestore 是一个 NoSQL、面向文档的数据库;没有表格或行。您将数据存储在文档中,这些文档被组织成包含一组键值对的集合。
一旦你有了基本的结构,你就可以选择其中一种Firestore 数据结构并对其进行测试:
- 文件
- 多个集合
- 文档中的子集合
嵌套数据
一个典型的用例可能涉及聊天应用程序,并且您希望将用户最近访问的三个聊天室作为嵌套列表存储在他们的个人资料中。
子集合
当您拥有可能随时间扩展的数据时,您可以在文档中创建集合;例如,您可以在聊天室文档中创建用户或消息的集合。
根级集合
您可以在根级别创建集合,为用户组织不同的数据集,为房间和消息组织另一个数据集。
推荐阅读
- java - 为什么我的 CheerpJ 网页显示加载屏幕却无法使用?
- javascript - JavaScript 在包含在另一个带有“w3-include-html”的 html 文件中的 html 文件中时不起作用
- java - 使用 SharePoint API 下载文件:文件损坏
- docker - 多执行连接窗口显示一个容器的相同会话信息
- azure - 如何安全地从家里连接到 Azure 门户
- python - 如何从 FFT 分析中过滤基于特定频率的数据过滤?
- ibm-cloud - 如何使用 Aspera Hot Folder 功能从 COS 下载大文件
- java - extjs 拆分按钮箭头单击
- c# - C# 从 XML 文件中抓取标签数据(包括内部标签)
- cmake - (Cmake-gui 设置)指定生成器时缺少 Visual Studio