Firebaseを試し始めました。リレーショナルデータベースに慣れているときは、本当の頭のベンダーです!Firebaseデータベース構造
私はユーザーがバーコードや名前で食事を検索し、カロリーの数を取得できるようにするアプリを設計しようとしています。さらに、私はユーザーが食べた食事を保管し、毎日、毎週、または毎月、ユーザーが食べた食べ物を検索する必要があります。
私は各食事にユニークなID(たとえば、ピザ用のM1234)があると思っていましたが、バーコードと名前で2つの検索セクションがあると思います。
各ユーザは、食べた 'テーブル'(Firebaseデータベースの 'テーブル'の正しい用語は何ですか?)に日付ごとに食べ物を食べさせ、IDで食事を参照するだけです。
これは私がデータベースを設計した方法です。
{
// Here are the users.
"users": {
"mchen": {
"name": "Mary Chen",
"email": "[email protected]",
}
},
...
},
// Here are the meals eaten by date.
"eaten": {
"mchen": {
// index Mary's meals in her profile /eaten/mchen/meals/20161217 should return 'M1234' (pizza) and 'M8765' (chips)
"meals": {
"20161217": {
"M1234": true,
"M8765": true
},
"20161218": {
"M2222": true,
"M8765": true
}
},
...
},
// Here are the meals with calorie information.
"meals": {
"M1234": {
"name": "Pizza"
"calories": 400
},
"M2222": {
"name": "Curry"
"calories": 250
},
"M8765": {
"name": "Chips"
"calories": 100
},
},
// Here is the barcode lookup
"barcode-lookup": {
"12345678": {
"id": "M1234"
},
"87654321": {
"id": "M2222"
},
"11223344": {
"id": "M8765"
}
},
// Here is the name lookup
"name-lookup": {
"Chips": {
"id": "M8765"
},
"Pizza": {
"id": "M1234"
},
"Curry": {
"id": "M2222"
}
}
}
明らかな欠陥がありますか?
[NoSQLデータモデリング手法](https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/) – Kato