リレーショナル データベースを Firebase に移行しています。一般的に、私は労働者のためのプランナーを持っています。スケジュールに項目 (「予定」) を追加できます。FireBase のドキュメントを読み、インデックス作成に関するセクションを見つけました。
したがって、次の構造を作成しました (日付 =YYYYMMDD
および時刻 = HHMMSS
):
{
appointments :
'id1' : { 'date' : '20141207', 'time' : '170000', worker : 'worker1' },
'id2' : { 'date' : '20141208', 'time' : '170000', worker : 'worker1' }
}
日付、時刻、およびワーカーのインデックスを追加して、次のようなデータをクエリできるようにしました (たとえば、今日のすべての予定をフェッチします)。
curl -X GET 'https://myapp.firebaseio.com/appointments.json?orderBy="date"&equalsTo="20141207"'
これは期待どおりに機能し、うまく機能します。問題は、予約の数が指数関数的に増加する可能性があることです (約 1 年後には、100000 件以上の予約が発生する可能性があります)。これらのインデックスを使用するのは良い方法ですか? 別のオプションは、次のように、日付と時刻も別々に保存することです。
{
'20141207' :
{ '170000' : { 'id1' : true } },
'20141208' :
{ '170000' : { 'id2' : true } }
}
1 日あたりの予定を非常に高速に取得できるようにするためです。または、FireBase はインデックスを使用するだけでこれを処理できますか?