2

我试图很好地掌握如何在 Firebase 中构建关系数据。我知道数据模型非常不同,但我在关系数据库方面有着悠久的历史。今天,我试图解决一个简单的问题。

在 MySQL 中,我有一个 Node 表和一个 NodeType 表:

节点表

  • 节点 ID
  • 节点名称
  • 类型 ID

节点类型表

  • 类型 ID
  • 类型名称
  • 类型元数据

我的问题是我想为每个节点类型存储一组特定的元数据,但我只想将它存储在一个地方。我希望能够更改Node Type A的元数据,并让它自动应用于属于该类型的所有节点。

在 Firebase 中构建它的最佳方法是什么?

4

1 回答 1

2

这篇博文对如何在 Firebase 中重构关系数据有一些想法:https ://www.firebase.com/blog/2013-04-12-denormalizing-is-normal.html ,我建议阅读它以更好地理解问题.

对于您的特定用例,您应该能够将节点和节点类型存储在单独的顶级键下,并在节点元数据中引用节点类型。例如:

/节点/名称:类型:/类型/名称:元数据:

您可以使用该push方法为节点自动生成 ID。对于节点类型,您可以使用相同的推送方法,或提供类型的手动 ID。

var ref = new Firebase("https://<my-firebase>.firebaseio.com/");
ref.child("types").child("type-a").set({name: "Type A", metadata: "About Type A"});
ref.child("nodes").push({name: "Some node", type: "type-a"});

您可以使用以下方法检索特定类型的类型信息.once('value')

ref.child("types/type-a").once("value", function(snapshot) {
  console.log("Metadata for Type A is: " + snapshot.val().metadata);
});
于 2013-08-28T18:33:46.510 回答