私のアプリケーションのデータベースを設計する際に問題があります。アプリではユーザーがジョブを作成してからGeoFireを使用して近くの人を見つけます。Firebaseデータベースの設計を最適化する
これは、これまでの仕事のために私のデザインです:
ユーザーと、その後の労働者がある見ることができるように。新しいジョブをサービスユーザのユーザ一意のID(UID)にプッシュした後、geoFireを使用して、近くにあるworkerUsersを検索します。私はその後、作業員のUIDにジョブをプッシュします。
私は基本的にこれらのジョブのコピーを作成しています:
は今ここに私の質問です。一度それを作成した人(サービス利用者の下)と近くのすべての従業員のために一度。 これは効率的ではありませんか?近くのユーザーにジョブオブジェクト全体の代わりに何らかのポインタを渡すべきですか?
さらに重要な質問は:デザインはそのままであれば、ジョブの作成者がそれを削除したとき、どうすればいいですか?私はworkerUsersで各ジョブを見つけてジョブUIDでジョブを削除する必要があります。 Firebaseはこれをサポートしていますか?
ありがとうございます!
はどうもありがとうございましたあなたの答え:)もう一つの質問をフォローアップ:私はデータベースが繰り返されるデータで膨らんでいないので、これは物事を行うための純粋な方法の多くであることを理解します。しかし、現在、私のworkerUsersは 'jobs/workerUsers/{uid}'の変更を待ち受ける '.on( 'value')'を持っています。私がjobKeysの配列をどこに持っていれば、serviceUsers内のジョブを繰り返し問い合わせなければならないでしょう。それは公正なトレードオフでしょうか? –
これは、IMHOを実行する方法です。これは単純なJSONオブジェクトであり、データ間の高度な関係に依存することはできません。いつでもデータベースをプロファイルし、最適化するための方法を模索することができます。 - https://firebase.google。com/docs/database/usage/profile –
ありがとうございました:) –