ベストアンサー
サンプルテーブル
ユーザー- id-ユーザー名-メール-名前-パスワード(ソルトおよびハッシュ)-必要に応じて他のフィールド
チャネル -user\_id-channel\_title –friend\_id
スナップ -id –user\_id –title –caption –date
Channel\_Subscribers -channel\_id –user\_id
Snap\_Reaction -snap\_id –user\_id –reaction(like、lol、cry 、怒っているなど)
コメント
最も頭痛の種となる主な要件は、部分的な共有です。誰とでも共有するのは簡単です。チャンネルに投稿すると、すべてのサブスクライバーがそれを見ることができます。ユーザーは画像を共有する各サブスクライバーを選択する必要があるため、部分共有ははるかに問題があります。ご想像のとおり、サブスクライバーが5人の単純なもので、500人以上では管理できません(ブレークポイントはその数を下回る可能性があります)。
考えられる解決策は、ユーザーがいるグループ設定を作成することです。グループをターゲットにすることができます。たぶん、そのターゲットはスナップとの相互作用に基づいています。スナップのように、スナップグループに追加され、コメントと、追加されるより包括的なグループになります。これは自動的に管理でき、おそらく有料レベルも追加されます。これにより、ユーザーとの収益分配としてアプリを収益化できます(標準のアップルタイプはユーザーを70、アプリに30に分割します)。 UIでグループをターゲットにするのははるかに簡単で、3つまたは4つのグループに制限すると、ユーザーにとってターゲットが簡単になります。
私の2セント。
回答
データベース管理者ではなく開発者として、データベースを次のように設定することをお勧めします。
== snap\_table ==
snapid | fromuserid |スナップテキスト| snapimage |タイムスタンプ
== snap\_to\_friend\_relation\_table ==
id | snapid | touserid
これにより、「snap\_to\_friend\_relation\_table」を使用して複数のユーザーにスナップを送信できます。それは理にかなっていますか?必要に応じて、さらに詳しく説明することができます…。