使用连接在firebase中建模数据 - 多对多关系

时间:2014-01-01 16:13:06

标签: oop firebase

我对新的 firebase.util 包很感兴趣,它允许你加入数据(路径)以及我如何能够继续使用UML进行建模,因为我已经习惯了多年。我可以看出以这种方式建立一对多关系是多么容易。而且因为firebase是层次结构,所以组件关系非常自然。

由于我们在javascript中已经习惯了聚合关系,因此聚合关系可能会被忽略 - 强制聚合关系似乎不会成为使用firebase对成功项目进行建模的障碍......

我的问题是,是否有人进行过实验与...取得了成功可以通过加入连接路径本身来展示如何表示多对多关系的示例。

如果我对这个问题不感兴趣,我可能会发布自己的试错结果......

由于

1 个答案:

答案 0 :(得分:0)

我试过使用复合键。例如,用户可以是许多房间的成员。我们需要两个查询:房间成员列表和用户房间列表。所以我们只能有一个收集室 - 用户,其中密钥是这样构建的:

id = [roomId, userId].join()

事实是,我不确定这是否是一个好的模式。它似乎可以阻止安全规则设置https://stackoverflow.com/a/17431390/233902,甚至可能会影响性能。

因此可能需要两个甚至更多的集合。两个用于多对多,第三个用于关系元数据。正如我想的那样,集合应针对查询进行优化,因此复合键是Firebase的反模式。