前提
pixivのような画像投稿SNSを作成したいと思っています。
PHP(Laravel)とFirebaseと必要に応じてGoogleCloudPlatformも使用する予定です。
データベースはFirebaseから新しく出た(β版ですが)、Firestoreを使用したいと思いました。
はじめてNoSQLを利用し、分からないことが多く、この場で質問させていただきます。
実現したいこと
2つの機能を実装するとします。
①マイページからからユーザーの投稿したもの一覧を表示 ②投稿物の詳細ページから投稿したユーザーを表示
検討中のDB構造
■:コレクション
□:ドキュメント
■users □user_uuid_1 name: 太郎 hobby: ゲーム introduction: 自己紹介文 ■posted post_uuid_2: true □user_uuid_2 name: 二郎 hobby: スポーツ introduction: 自己紹介文 ■posted post_uuid_1: true post_uuid_3: true
■posts □post_uuid_1 title: サッカー description: 投稿説明文 ■tags tag_uuid_1: true tag_uuid_3: true img_path: 〇〇/△△/□□.jpg author: user_uuid_2 □post_uuid_2 title: ゲーム description: 投稿説明文 ■tags tag_uuid_2: true img_path: **/△△/□□.jpg author: user_uuid_1 □post_uuid_3 title: 野球 description: 投稿説明文 ■tags tag_uuid_1: true img_path: ++/△△/□□.jpg author: user_uuid_2
■tags □tag_uuid_1 tag_name: スポーツ □tag_uuid_2 tag_name: サッカー □tag_uuid_3 tag_name: ゲーム
質問内容
(1)xxx_uuid_x はfirestoreが自動でつけてくれるIDを指していますです。推奨と書いてあったため全てこれにしていますが、問題ないでしょうか? (2)①と②の機能を実装するにあたって以上の設計で問題なさそうでしょうか…? (3)実装する機能の①と②の表示の仕方は以下で問題ないでしょうか? →①usersコレクションのpostedにあるので、その中のvalueが「true」の物のみ抽出し、そのkey(post_uuid_x)をpostsコレクションで検索 →②postsコレクションからauthorのvalue(user_uuid_x)をとりだし、その値をkeyにしてusersコレクションで検索 (4)記載した設計の場合、1つ投稿するとusersコレクションのpostedにINSERT、postsコレクションのauthorにINSERTと2つ行う必要があると思いますが、 そのやり方は正しいでしょうか?(何か1度ですむ機能などがあるのかな?と少し疑問に思いました)
不明点が多くて申し訳ありません…。
勉強中で、調べながら疑問に思った点を挙げました。
他に適した構造やアドバイス等がございましたら、ご教授お願い致します。
長文失礼しました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/18 00:22