%3Cbr%3E%3Cbr%3Emicomia株式会社の畑井です。今回は、Firestoreを使う際に迷いがちな「サブコレクションにするか、独立コレクションにするか」について、判断基準をわかりやすく整理していきます。FlutterFlowで開発している方にも役立つ内容です。%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E1.サブコレクションとはFirestoreでは、ドキュメントの下にさらにコレクションを持つことができます。これをサブコレクション(Subcollection)と呼びます。%3Cbr%3E例えばusersコレクションとサブコレクションにpostsを持っていた場合、構造のイメージは次のようになります。/users/{userId}/posts/{postId}このように「ユーザーが複数の投稿を持つ」といった1対多の関係を表現する場合によく使われます。%3Cbr%3E%3Cbr%3E2.サブコレクションを使うメリットサブコレクションには以下のようなメリットがあります。データを階層的に整理できるクエリ範囲を絞れるため、読み取りコストを削減できる親ドキュメント削除時の処理が明確特に「ユーザーごとの投稿」「企業ごとの案件」など親コレクションと紐づいたデータを扱うときに非常に有効です。%3Cbr%3E%3Cbr%3E3.独立コレクション(トップレベル)の方がよいケース一方で、サブコレクションにせずトップレベルで管理した方が良いケースもあります。%3Cbr%3E%3Cbr%3E例:/posts/{postId}主な理由は以下の通りです。複数ユーザーや全体から横断的に検索・ランキング表示をしたいデータが膨大で、親単位に分けても意味が薄い親と独立した存在として管理したいつまり、「全ユーザー共通で扱うデータ」や「横断的な集計が必要なデータ」はトップレベルに置くのが基本です。%3Cbr%3E%3Cbr%3E4.判定基準(チェックリスト)質問サブコレクション独立コレクションデータは特定の親に属する?◯親を削除したら一緒に消したい?◯親と一緒に表示・管理することが多い?◯複数の親をまたいで検索・ランキング表示したい?◯データが大量で横断処理が多い?◯%3Cbr%3E上記のように、「親と一緒に扱うかどうか」で判断するのがシンプルです。%3Cbr%3E%3Cbr%3E5.まとめ今回はFirestoreのサブコレクションについて解説しました。中級者や上級者向けの内容となっているため使う場合は無理をしなくても大丈夫です。判定表を掲載しているので、わかりにくい人はそれを見ながら判定していただければ良いと思います。micomiaではFlutterFlowの相談・サポートもお受けしておりますのでお気軽にお問い合わせください。%3Cbr%3E%3Cbr%3E