Firestore におけるDB設計
DB設計について考える場合、そもそもFirestoreのようなドキュメント指向のNoSQLデータベースではどんなDB設計をするべきなのか、いろいろと情報を漁ってみました。
以下は、いろいろ調べた中で、個人的に参考になった記事です。
おそらくFirestore のDB設計について考える場合、今回挙げた記事は、何度も読むことになりそうなので、備忘録的に残すことにしました。
NoSQLデータモデリング技法
参考になった点
- Firestore に限定されず、NoSQLデータベースとしてのプラクティスが網羅されている
- いきなり具体例ではなく、概念から解説してから、具体的な技法について解説している
- RDBでは、基本的には、正規化を徹底するが、NoSQLデータベースでは、非正規化を許容する、むしろ活かす
Firestore Database Design
参考になった点
- Firestore にフォーカスしている
- Firestore の基本的なデータモデルの概念であるコレクションとドキュメント・サブコレクションについて、図だけで十分伝わる
- Firestore を使った場合の開発の特徴(Client Side Join) についての言及している
- リレーションを Firestore ではどのように表現するか具体的なクエリ共に解説されている
- セキュリティルールについて取り上げている
- データの冗長化について取り上げている
Cloud Firestoreの勘所 パート2 — データ設計
参考になった点
- ブログサービスというかなり具体的な例を用いて、設計について解説しているのが超絶わかりやすかった
- 上2つの記事を読んで、事前情報を知った上で、再度読むとより理解が深まった
Get to know Cloud Firestore
Firebase公式のYouTubeチャンネルです。
参考になった点
- 安定安心の公式の情報源というだけでなく、RDBと比較して、Firestore について、しっかり解説をしている
- 全て英語ですが、字幕もあり、動画内で説明用に出る図もわかりやすい
Cloud Firestore Data Modeling (Google I/O'19)
こちらもFirebase公式の動画。
参考になった点
- FirebaseのYoyuTube公式チャンネルにて、Firestore の解説動画を担当されている方のセッション
- Firestoreが、正式リリースされてから半年以上は経った上で、改めてFirestore におけるデータモデリングのあり方を教えてくれる。
- 図解を交えて、非正規化で重複したデータが存在する状況で、どうデータ整合性を担保するかを解説してくれている