2017-10-15 13 views
0

私は自分のfirebaseの構造を設計しています。firebase structure college db

リトル情報:

各大学にはいくつかの部署があります。

各部門には多くのコースがあります。コースは複数の部門に所属できます。 各コースにはいくつかのレッスンがあります。レッスンは1つのコースに属することができます。

私はすべての部門との情報と部署のノードを持つenter image description here

すべての主要コースと情報 でコースのノードを持っています。 私は各コースは、いくつかの講師によって学習し、各講師は、いくつかのコースを教えるための表示courses_lecturesとcourses_lectures を持っているだけでなくノードCourse_DepartmentsとDepartments_courses enter image description here

を持っています。

私の質問は です。1.どのようにこれらの表にレッスンを接続しますか?私はlecture_key2が教えるcourse_key1のすべてのレッスンを見つけたいですか? 2.このように多くのテーブルを使用すると、データを取得するのに多くの時間がかかることがありますか? UIの 私はユーザーがデータを待つことを望んでいません。

+1

何を試しましたか?ちょっとしたコードは長い道を行くことができます。 – alphapilgrim

+0

私はまだコード化していません。ちょうど私のDBの構造。私は、各コースのレッスンを受けるレッスンとレッスンとの関係を作り、このレッスンを教える講義をしたい –

答えて

1

あなたのデザインを見ると、あなたは正しい方向にいると思います。

私はあなたが世話できるものについていくつかのヒントを示します。 Firebaseデータベースの構造を設計する際には、非リレーショナルデータベースのルールを念頭に置く必要があります。

一方は非正規化です。階層をフラットに保つ!これは、すべてのサブノードが関与しているため、データ変更リスナーにとって重要なパフォーマンス要因です。それは今まであなたがしてきたことです。

エンティティの関係は、キーを使用することによって実現できます。あなたがCourses_Departmentノードで行ったのとまったく同じです。キーの組み込み作成を使用する必要があります。彼らは普遍的にユニークでなければなりません。

Here'sリレーショナルデータベースから来た場合には良い説明です。