2017-11-22 4 views
0

ユーザがカテゴリ内に商品を投稿するアプリケーションを開発しています。私はfirebaseを使用していると私はデータベース上のデータを平坦化しようとしているが、カテゴリとの投稿の接続についてはわからない。ここで Firebaseのデータを平坦化する方法

は、データベースの設計です:

"categories": { 
    "category1": { 
    "id": "1", 
    "name": "computers" 
    }, 
    "category2": { 
    "id": "2", 
    "name": "Furniture" 
    }, 
    "category3: { 
    "id": "3", 
    "names": "Books" 
    }, 
} 
"users":{ 
    "email": "[email protected]"  
    "posts": { 
    "post1": { 
     "id": "1" 
     "title": "Selling my guitar”, 
     "categories": { 
     "category1": "true" 
     } 
     } 
    } 

編集:はたぶんだから私は、私はポストは別のエンティティでなければなりません知っているが、その後、私はないです学んだことから、この

"categories": { 
    "category1": { 
    "id": "1", 
    "name": "computers", 
    "posts": { 
     "post1": true 
    } 
    }, 
    "category2": { 
    "id": "2", 
    "name": "Furniture" 
    }, 
    "category3": { 
    "id": "3", 
    "names": "Books" 
    }, 
} 
"users": { 
    "userid1": { 
    "email": "[email protected]" , 
    "posts": { 
     "post1": "true" 
    } 
    } 
}, 

"posts": { 
    "post1": { 
     "id": "1", 
     "title": "Selling my guitar", 
     "users": { 
     "user1" : "true" 
     }, 
     "categories": { 
     "category1": "true" 
     } 
     } 
    } 

のようになめらかそれらを接続する方法を確認してください。

このデータベースを改善する方法を教えてください。

答えて

2

データのフラット化は、エンティティタイプを混在させないことを意味します。現在の/usersノードを見ると、そのノードのユーザに関する情報(電子メールアドレス)とノードのリストが表示されます。それらは2つの異なるエンティティタイプであり、通常は別々のトップレベルリストにある必要があります。

"categories": { 
    "category1": { 
    "id": "1", 
    "name": "computers" 
    }, 
    "category2": { 
    "id": "2", 
    "name": "Furniture" 
    }, 
    "category3: { 
    "id": "3", 
    "names": "Books" 
    }, 
} 
"users":{ 
    "userid1": { 
    "email": "[email protected]"  
    } 
}, 
"posts": { 
    "post1": { 
     "id": "1" 
     "title": "Selling my guitar”, 
     "categories": { 
     "category1": "true" 
     } 
     } 
    } 
+0

投稿とユーザーとの接続はどうですか。ユーザーはそれらの投稿を作成します。 私のアプリでは、ユーザーごとの投稿とカテゴリごとの投稿を照会できるはずです。 –

+0

私の投稿を編集しました。あなたの応答に応じて、私のアプリのニーズはそのように見えるはずです。 投稿、カテゴリ別の投稿、ユーザー別の投稿を照会できるはずです。 入力いただきありがとうございます –

+0

すべてはあなたのアプリのユースケースに依存しており、それでもかなり幅があります。 [NoSQLデータモデリング](https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/)と(SQLバックグラウンドを持っている場合)[Firebase for SQL developers]を見てみることをお勧めします。 (https://www.youtube.com/playlist?list=PLl-K7zZEsYLlP-k-RKFa7RyNPa9_wCH2s)。 –

関連する問題