サーバサイドにmBaaSを使用して、SNSのようなスマートフォンアプリを作ろうと思っています。
使おうと思っているmBaaSのデータストア(DB)がmongoDBで実装されているため、NoSQLの特性を考慮してスキーマ設計を行う必要がある状況です。
本題ですが、
SNSにおけるフォロー、フォロワーのような関係をどのように実現するかで詰まってしまいました。
RDBのように中間テーブルを設ける場合も、ユーザーテーブルに配列形式でフォロー、フォロワーのカラムを設ける場合も、どちらも整合性の観点でトランザクション処理が必要になると思いますが、mongoDBにはトランザクション処理に対応していないはずです。
ユーザーテーブルに「フォロー」カラムのみ設けた場合、トランザクションは不要になりますが、この場合「フォロワー」に関する情報を扱うのが大変難しくなりそうだと思いました。(フォロワー数を調べるために全ユーザーのフォローカラムのレコードを調べる必要がある)
この問題をクリアする解決策はありますでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/17 22:44 編集