构建Firebase数据
我在构建Firebase数据时遇到了一些困难。我有用途和房间。每个用户可以加入多个房间,每个房间可以有多个用户。构建Firebase数据
这是我的设置现在:
我保存所有房间的ID在连接装置(room_info)。所有链接的设备都位于房间孩子的密钥 - >设备信息下。我将设备名称保存在那里以便快速查找。
我已经使用这个webbpage验证了我的想法: https://www.firebase.com/docs/web/guide/structuring-data.html
有什么可以做的更好?
而且我想保存设备状态(如果设备在线)。我想在房间钥匙下创建一个device_state子项。我想保存在线的所有设备ID。并在离线时删除它们。这是一个好方法吗?
您需要知道,构建Firebase数据库没有完美的解决方案。最好的解决方案是能够满足您的需求并使您的工作更轻松的解决方案。考虑到一切都是为了观点,我建议你记住一些事情。
深度不是影响技术水平速度的因素。 Firebase可以像第1级一样快速查找30级节点。快速影响性能的主要因素是
size of the data
您的应用读/写和available bandwidth
。Denormalization是Firebase中的常见做法。
如果我们谈论可伸缩性,我们还需要记住,firebase中的一条重要规则是尽可能使数据变得平坦。请参阅以下帖子,Structuring your Firebase Data correctly for a Complex App,以获得更好的理解。
但是,根据您的使用情况,保持数据平坦性通常更好。所以如果你不需要的话,不要过分复杂你的结构。不要为了数据库的非规范化而使用非规范化。
- 另一个想法是让您的数据始终可以重复使用。
关于您的实际Firebase数据库结构,如果您可以轻松查询以获取所需数据,请继续操作。如果你想了解更多信息,我建议你访问上面的链接。
如果您有SQL背景,我还建议您参阅本教程,The Firebase Database For SQL Developers。
关于你最后的问题,是的,这是一个非常好的方法。
希望它有帮助。
伟大的提示!你能否分享一些显示** 1 **的来源/文件/数据?特别是与查找速度相同的部分,无论它的深度如何。 – Michal
除了上面的链接,我还在阅读这篇文章,[NoSQL Data Modeling Techniques](https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/)。 –