2016-10-08 14 views
0

私はFirebaseとNoSqlを使い始めるので、ベストプラクティスを理解したいので、order、order_rows、およびarticlesを使ってこのスキーマを作成しようとします。私は私が注文の行を見つけ、その行の注文から記事を検出することができます注文番号1を、示さなければならないこのNoSqlスキーマは正しいですか?

{ 
    "orders": { 
     "1": { 
      "date": "1/1/2016", 
      "row_order": { 
       "1": true, 
       "2": true 
      } 
     }, 
     "2": { 
      "date": "1/1/2016", 
      "row_order": { 
       "3": true 
      } 
     } 
    }, 
    "articles": { 
     "1": { 
      "name": "a" 
     }, 
     "2": { 
      "name": "b" 
     } 
    }, 
    "row_orders": { 
     "1": { 
      "quantity": 7, 
      "id_article": 1 
     }, 
     "2": { 
      "quantity": 2, 
      "id_article": 2 
     }, 
     "3": { 
      "quantity": 4, 
      "id_article": 2 
     } 
    } 
} 

:メイン・クエリは、私はこれを作成するように、特定の順序を示すことです。

getデータをsemplifyするために、古典的なSQLスキーマ(id_articleとid_orderのrow_orders)は使用しません。

これは間違いありませんか?または私はどのようにすることができますか?

答えて

0

NoSQLのデータ構造は、という正しい方法ではありません。です。 NoSQLについて知りたい場合はFirebase documentation on structuring data、この記事はNoSQL data modeling、Firebaseブログの古いブログ記事(this oneなど)を読むことをお勧めします。

データ構造に直面する問題の1つは、疑似アレイインデックスをデータのキーとして使用することです。 Firebaseはそれらを実際の配列インデックス(最初の要素が空の配列を返すことを意味します)として解釈しようとし、オフラインになっている可能性のある多くのユーザーやユーザーに拡張されないため、困難な時間につながります。詳しくはblog post on arraysをご覧ください。

関連する問題