我正在最终确定Firebase的结构,并希望确定我能够在早期使用最简单,最具扩展性的设计。
要求
这是我目前的数据结构
firebase
--team-favoritees
--teams
--user-favorites
--users
我在Firebase结构上阅读的大多数帖子都有更多这种结构
firebase
--teams
----favoritees
--users
----favorites
但是,我也认为Firebase应该尽可能地非规范化,这就是为什么我将数据结构化为具有一个较少的嵌套节点。
有人说 - 我的设计有什么缺点吗?如果我不必更深入地挖掘一个额外的节点,可能不会同时更新多个节点,可能会为简单的事务拉出不需要的记录?一种设计是推荐的吗?
感谢任何输入!
答案 0 :(得分:1)
transaction
具有特定含义(这是它自己的一种方法)。如果您的意思是update
,我知道they show how会发送多个'命令',如果您愿意的话,
// Write the new post's data simultaneously in the posts list and the user's post list.
var updates = {};
updates['/posts/' + newPostKey] = postData;
updates['/user-posts/' + uid + '/' + newPostKey] = postData;
我认为这种“堆叠命令”可以用其他方法支持单个更新对象(例如transaction
)。
关于数据结构/非规范化,它们为我所遵循的“可扩展的数据”提供了a specific example。