2016-12-09 22 views
0

初めてnosqlデータベースを構築しようとしています。私は、名前と電子メールアドレスを含むユーザーテーブルを持っています。各ユーザーは複数のデバイスを持つことができます。Firebase/NoSQLデータベース構造

各デバイスには基本的に複数の読み取り値の配列があります。

enter image description here

どのように私は、この構造を改善することができます:ここで

は私の現在の構造がどのように見えるのですか?

ps:anglefireでanglejsを使用しています。

答えて

1

リレーショナルデータベースでは、通常のフォームの概念があり、したがってデータモデルが正規化されているかどうかの幾分客観的な尺度に関連しています。

NoSQLデータベースでは、アプリケーションがデータを消費する方法をモデリングすることがよくあります。したがって、あなたのアプリのユースケースを考慮せずに、良いデータモデルを構成するものの概念はほとんどありません。

これは:Firebase documentation recommends flattening your dataです。具体的には、ユーザーのメタデータやデバイスのメタデータのように、データの種類を混在させることを推奨します。

勧告は2つのトップレベルのノードにそれらを分割するようになります:

/users 
    <userid1> 
    email: 
    id: 
    name: 
    <userid2> 
    email: 
    id: 
    name: 
/devices 
    <userid> 
    <deviceid1> 
     <measurement1> 
     <measurement2> 
    <deviceid2> 
     <measurement1> 
     <measurement2> 

さらに推奨読書はNoSQL data modelingと私たちのFirebase for SQL developersを見ています。もちろん、Firebase documentation on structuring dataです。

+0

こんにちは@フランク・ヴァン・プフレン、お返事ありがとうございました。だからデバイスの下に私も正しいデバイスIDを置くだろうか? –

+0

である。私はあなたのJSONでそれを見落とし、余分な層で私の答えを更新しました。 Btw、次の質問:JSONをテキストとして投稿してください(FirebaseコンソールからJSONを簡単に書き出すことができます)。それは私が答えでそれを再使用することを可能にします(他の多くの利点の中でも)。 –

+0

現在ログインしているユーザーが使用した最後のデバイスのデータベースを照会したいのですが、どうすればいいですか? 最初にユーザーに問い合わせてから、デバイスで確認する必要がありますか? –