0

以下のシナリオでどのようにデータを構造化できますか?ファイアベースでのベストプラクティスデータ設計

フードオーダーシステムと呼ばれるアプリがあります。それは

説明

場所

RESTAURANT_NAME

(この店舗のオンライン注文のためのメニューを登録された)

ユーザー名が含まれています納期目安

メニュー(1軒のレストランの複数のメニューを持っている)

マイデザイン

"restaurant":{ 
    "username":{ 
     "restaurant_name":"KFC Restaurant", 
     "description":"short description on restaurant", 
     "estimated delivery":"1hour/km", 
     "distance":"20km away", 
     "location":"Kathmandu", 
     "rating":"rating star up to 5", 
     "menus":{ 
      "menu":{ 
       "item":"buff momo", 
       "price":"$5", 
       "rating":"rating star up to 5" 
       }, 
      "menu":{ 
       "item":"Fried Chicken", 
       "price":"$10", 
       "rating":"rating star up to 5" 
      }, 
      "menu":{ 
       "item":"BBQ", 
       "price":"$20", 
       "rating":"rating star up to 5" 
      } 
     } 
    } 

} 

は、ベストプラクティスの設計私のデザインですか?

+1

すべてのデータは、このデータで何をしようとしているか、またどのように複雑になるかによって決まります(たとえば、1000個のメニューを持つユーザーなど)。あなたが持っているデータだけを表示するのではなく、あなたが何をしようとしているのかを伝えることができれば助かります。 –

+0

私は各ユーザがレストランやホテルのメニューを登録し、ユーザが好みのメニューを注文することができる、料理注文システムを作成しようとしています。 2000以上のデータと1つのレストランのメニューは20以上になることはありません。 – milan

答えて

1

これは実際にこのデータで何をしたいかによって決まります。

ウェブサイトにすべてのレストランのリストを表示し、レストランをクリックしたときに提供しているメニューのリストを表示すると、レストラン内にメニューを保存することはお勧めできません。

ドキュメントによるので:私たちは私たちのFirebaseデータベース内のデータノードを読んだとき

、我々はまた、そのすべての子を取得!

(古い)もhttps://www.firebase.com/docs/rest/guide/structuring-data.html#section-denormalizing-data

あなたが検索バーを行うと(チキンナゲットなど)のメニューを探したい場合を想像して、これは私がこのようにデータベースを設計します提供するレストランのリストを返します:

"restaurant":{ 
"$username":{ 
    "restaurant_name":"KFC Restaurant", 
    "description":"short description on restaurant", 
    "estimated delivery":"1hour/km", 
    "distance":"20km away", 
    "location":"Kathmandu", 
    "rating":"rating star up to 5", 

    } 
} 

"menus":{ 
    "$username" : { 
     "menu":{ 
      "item":"buff momo", 
      "price":"$5", 
      "rating":"rating star up to 5" 
      }, 
     "menu":{ 
      "item":"Fried Chicken", 
      "price":"$10", 
      "rating":"rating star up to 5" 
     }, 
     "menu":{ 
      "item":"BBQ", 
      "price":"$20", 
      "rating":"rating star up to 5" 
     } 
    } 
} 
+0

これは私が実装しようとしているものです。私は明らかにメニュー部分と混同していました。ありがとう。 – milan

+0

'$ username'キーの目的は何ですか? –

+0

ああ、私はそれを得た、 'ユーザー名(オンライン注文のためにこのレストランメニューを登録している人)' –

関連する問題