2016-08-31 2 views
1

タグをfirebaseのレコードに保存する方法は何ですか?たとえば、お気に入りを持っているユーザーがいて、複数のタグをお気に入りに追加できます。 1つ以上のタグでクエリを実行できるようにしたいと思いますか?firebaseにタグを保存して照会することができます

これは(ほとんどのNoSQLデータベース上のような)基本的な構造Firebaseで

Users{ 
favourites: { 
    fav_1:{ 
     tags:[tag1,tag2,tag3,...] 
    } 
    fav_2:{ 
     tags:[tag1,tag2,...] 
    } 

    ..... 
} 

}

答えて

5

である、あなたは、多くの場合、アプリケーションがそれを使用したい方法を、あなたのデータをモデル化する必要があります。

現在のモデルは、特定のユーザーのタグ(fav_1、fav_2)のリストを検索するのに最適です。しかし、特定のタグのユーザーリストを見つけるのはそれほど素晴らしいことではありません。後者のクエリを許可するには、データモデルに反転ルックアップリストを追加します。

Tags: { 
    fav_1: { 
     User1: true, 
     User2: true 
    } 
    ... 
} 

をあなたの元のモデルでこれを組み合わせることで、ユーザーのためのタグのリストだけでなく、ユーザーのリストのために調べることができますタグ。

NoSQLデータモデリングの概要については、NoSQL data modelingを参照してください。

+0

お返事ありがとうございます。私はお気に入りに複数のタグを保存できるようにしたい、私はより明確な説明のために質問を編集しました。 – user3552551

+0

こんにちは。私は、 'post'sのようなシナリオで' tag'を持つことができるかどうか、 'post'に' tags'( 'tag_id'sで構成)があり、別の' tags 'ノードに' tag_id'のリストが含まれていて、 'tag_id'には' post_id'も関連付けられていますか? (post-post_id - tags [] '、' tags - tag_id - posts [] ') - これを見てみましたが、これはこれまで考えることのできる最もシンプルな構造で、タグを持つことを目指していました –

+1

私は通常、そのような分類の問題を、両方の方向に、つまりカテゴリからカテゴリへ、カテゴリからポストへ、関係を保存することによってモデル化します。私の説明はこちら:http://stackoverflow.com/questions/40656589/firebase-query-if-child-of-child-contains-a-valueコメントはデータ構造を表示するための副次的なものであるため、新しい質問を開いてさらにbtwについて議論してください。 :-) –

関連する問題