Firebaseのデータを正しく取得するのに苦労し、ガイダンスが必要です。私はリレーショナルデータベースの周りに自信を持っており、私はその考え方をファイアベースに複製していることがわかります。Firebase data:denormilization and duplication
私はフィットネスアプリを作成しています。私が持っている構造は次のとおりです:エクササイズ、ワークアウト、プログラム。
練習は非常に簡単です。練習は名前、説明、そしてスクワットやベンチプレスのような単純な動きの写真です。
exercise
--e1
--name:"Squats"
--description: "..."
--e2
--name:"Benchpress"
--description: "..."
次に、私はトレーニングのリストを持っています。ワークアウトは、特定の担当者とセットで特別な順序で実行される一連の演習です。一つの運動は、単に運動1を使用してワークアウトが異なるパラメータ(担当者、セット、残りの部分)だからここに私はW1を持って
workouts
--w1
--name:"Easy workout"
--description: "Design for beginners"
--exercises:
--we1:
--exercise: e1
--reps: 12
--rest: 60
--order: 1
--we2
--exercise: e2
--reps:6
--rest: 30
--order: 2
--w2
--name: "Hard exercise"
...
と、多くのトレーニングで使用することができる。まず、あなたは運動1の12件のrepsを行い、その後、残りの部分60秒間、次いで運動6の6回の反復および30秒間の休息。
最後に私はプログラム/プランを持っています。プログラムは、あなたが従うことができる複数のトレーニングから構成されています。たとえば、あなたのプログラムは、月曜日、水曜日、金曜日に行うべき3つのトレーニングから成り立っています。
programs
--p1
--name: "The Stack Overflow Fitness Plan"
--description: "I am a fancy text"
--workouts:
--w1: true
--w2: true
上記のように、私はちょうどfirebaseにリレーショナルデータを載せています。これは正しい方法ではありません。私はこのデータをどのようにして平らにしなければならないのかに問題があります。たとえば、重複していますか?
私はプログラムの場所を照会してから実際に高価な読書(ベストプラクティスではない)を持っています。それをマップし、トレーニングを照会し、マップし、演習を照会します。それは非常に面倒なことになります。
いずれにせよ、大歓迎です。