2017-05-17 17 views
0

どのようにファンアウトの経路を把握していますか?
relationshipと呼ぶべきかどうか分かりません。とにかく...
例として次の構造を取り上げます。私たちはソーシャルアプリのいくつかのフォームを持っていると言う。どのユーザーも自分の友達を追加してニックネームを付けます。Firebaseデータベースのファンアウト関係を把握する

"friends": { 
    "user2": { 
     "user1": { 
     "nickname": "wife", 
     "uid": "user1" 
     } 
    }, 
    "user3": { 
     "user1": { 
     "nickname": "bff", 
     "uid": "user1" 
     } 
    } 
    } 
    "users": { 
    "user1": { 
     "name": "Rubia Castangia", 
     "gender": "Female", 
     "age": 22 
    }, 
    "user2": { 
     "name": "Roxy Brightling", 
     "gender": "Male", 
     "age": 23 
    }, 
    "user3":{ 
     "name": "Carole Delgardillo", 
     "gender": "Female", 
     "age": 35 
    } 
    } 

我々は&信者はだから後、我々は別の機能を追加....とそれが進む次の構造

"timeline": { 
    "user2": { 
     "post1234": { 
      "text": "Feeling bored", 
      "author_nick": "wife", 
      "uid": "user1" 
     } 
    }, 
    "user3": { 
     "post1235": { 
      "text": "Feeling bored", 
      "author_nickname": "bff", 
      "uid": "user1" 
     } 
    } 
}, 
"followers": { 
    "user1": { 
     "user2": true, 
     "user3": true 
    } 
} 

でアプリに備えていますタイムラインを追加するとしましょう。
だから関係は例えば です:user2はここfriendIdためnicknameを更新するとき/timeline/userId/postId/author_nickを更新する必要があります。アプリはより複雑になるにつれて/friends/userId/friendId/nickname

、私はパスしなければならない私のファンアウトを忘れがち。あなたがファンアウトへの道のりの関係を把握するために使っているツールはありますか?

+0

@AtifAbbAsi上記は私の実際の構造ではありません。質問のためにそれを思いついただけです。 – Atu

+0

画像のフォームにデータベース構造を投稿すると、簡単に私の手助けをすることができます@Atu http://stackoverflow.com/questions/38181973/firebase-database-the-fan-out-technique?rq=1 –

答えて

1

ツールは必要ありません。必要に応じてデータベース構造をモデル化し、非正規化してできるだけ平坦に保つだけです。ユーザーオブジェクト

  • はのニックネームマップをフェッチフェッチ

    • user2のログ
    • 中:

      users 
          user1 
          *user_data* 
          user2 
          *user_data* 
          following 
           user1: true 
          user3 
          *user_data* 
      
      nicknames 
          user2 
          user1: wife 
          user4: friendo 
          user3 
          user1: bff 
      
      posts 
          user1 
          post1 
           text: "bla" 
      

      そして大体、これはあなたが何ができるかです:どのようにこのような何かについて

      そのユーザー

    • "次の"マップのすべての人物:そのユーザーの投稿を取得します
    • ポストコンテンツを表示、ニックネームのマッピングのための検索は、そうでない場合は

    十分なシンプルなユーザー名を表示しますか?

  • 関連する問題