2

Firebase でリレーショナル データを構造化する方法をよく理解しようとしています。データ モデルが大きく異なることは理解していますが、リレーショナル データベースには長い歴史があります。今日、私は簡単な問題を解決しようとしています。

MySQL には、Node テーブルと NodeType テーブルがあります。

ノード テーブル

  • ノード ID
  • ノード名
  • タイプ ID

ノード タイプ テーブル

  • タイプ ID
  • タイプ名
  • タイプメタデータ

私の問題は、ノード タイプごとに特定のメタデータ セットを保存したいのですが、それを 1 か所だけに保存​​したいということです。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 に答える