2016-10-21 15 views
0

NoSQLを少し新しくして以来、コーディングを進める前に、私のアプリで構造をどのように進めるかについて考えることにしました。Firebaseデータベース構造の矛盾

Users: 
    ID 
     email: "[email protected]" 
     name: "John Doe" 
     profile_pic_path: "https://...". 
     language: "en" 
     exp_points: 1284 

    Projects: 
    /$PROJECT_ID 
     title: "For whom the bell tolls" 
     image: "etc.png" 

    project_roles: 
    /$PROJECT_ID 
     $userId1: 5 
     $userId2: 6 

    roles: 
    5: "Editor" 
    6:" Writer" 

は、だから今、私はprojectsordersを追加する必要があります。各orderitemsのリストです。

私の質問は:

  1. 私の構造はできるだけ平坦です。私はNoSQLを初めて使用しているので、正しくやっていますか?あなたが変えてしまったことがあれば、私は最大限の安定性を持ってすべてを構築しようとするとすぐに聞き、学びたいと思います。
+0

'project_tasks'ノードはどこですか? –

+0

スペルミスをお詫び申し上げます。私は 'project_orders'を意味します。 – Reni

+0

@rainmanそれはどういう意味ですか? – Reni

答えて

0

昨日私はjsonデータベース、この場合はfirebaseリアルタイムデータベースについて学び始めます...そして正しいfirebaseベースのスキーマについて質問しています... firebaseデータベースを作成するには、概念:

  • データのネストを避ける:Firebaseは32のネストノードをサポートし、すべてのノードを使用する必要がありますか?いいえ...あなたのデータベースはよりシンプルで、より少ないノードで情報を読むのが簡単です。親ノードを呼び出すと、firebaseはすべての二次ノードの情報を返します。
  • 不要なネスティングノードを回避するためにデータ構造を圧縮することで、より速いfirebaseデータベースを持つのに役立ちます。
  • これは最も重要な可能性があるスケールデータまたは二輪ノードの作成です。プロジェクトの注文やユーザーの注文を見る必要がある可能性があるため、ここでは自転車ノードがあります。より効率的なデータベースを行うために、インデックスjsonオブジェクトを作成します。

この概念を適用すると、優れたJSONデータベースを構築できます。詳細については、このguideの例とgoogleの情報を参照してください。スキルを行うことはできません。なぜなら、あなたがあなたのアプリケーションに必要なものをもっと知り、それについて読んで、例に従って、最良のスキーマを構築するからです。このyoutuberはfirebase realdatabaseとそのルールの良い習慣について話しています。ご挨拶!