【告知】値の参照時の仕様変更のお知らせ
このたび2024年11月11日に値の参照に関する仕様変更を予定しておりますので詳細について報告いたします。
more
2023.07.10に公開 | 2023.07.10に更新
Querier運営
「Querier(クエリア)」は社内向け管理画面を圧倒的な速さで、かつビジネスのスケールに合わせて柔軟に構築することができるローコードツールです。
管理画面の構築もWeb上で完結
エンジニアのためのローコードツール
Firestoreは、スケーラビリティとリアルタイム性を備えたクラウドベースのデータベースです。
データモデルの設計は、Firestoreの効果的な利用において重要な要素です。
本記事では、Firestoreの設計ガイドとして、リレーションを活用した最適なデータモデルの設計方法について詳しく解説します。
Firestoreでは、データはコレクションとドキュメントの階層構造で管理されます。
コレクションはドキュメントのグループであり、ドキュメントはキーと値のペアで構成されます。
データモデルを設計する際には、コレクションとドキュメントの階層構造を適切に活用することが重要です。
例えば、SNSアプリケーションを考えてみましょう。ユーザーの情報を管理するために、users
という名前のコレクションを作成します。
各ユーザーは一意のIDを持ち、そのIDをドキュメントのキーとして使用します。ユーザーの情報(名前、メールアドレス、プロフィール画像など)はドキュメントの値として格納されます。
Collection: users
|
---- Document: user1
| |
| ---- name: "John"
| |
| ---- email: "john@example.com"
| |
| ---- profileImage: "https://example.com/profiles/user1.jpg"
|
---- Document: user2
|
---- name: "Emily"
|
---- email: "emily@example.com"
|
---- profileImage: "https://example.com/profiles/user2.jpg"
リレーションを活用することで、関連するデータを効率的に取得できます。
Firestoreでは、リレーションを実現するために2つの方法があります。
埋め込みドキュメントは、ドキュメント内に他のドキュメントを埋め込む方法です。
例えば、SNSアプリケーションでは、ユーザーのドキュメント内にそのユーザーの投稿を埋め込むことができます。
埋め込みドキュメントを活用することで、一度の読み込みで関連するデータを取得できますが、ドキュメントのサイズが大きくなる可能性があるため、注意が必要です。
Collection: users
|
---- Document: user1
| |
| ---- name: "John"
| |
| ---- email: "john@example.com"
| |
| ---- profileImage: "https://example.com/profiles/user1.jpg"
| |
| ---- Collection: posts
| |
| ---- Document: post1
| | |
| | ---- title: "Hello, Firestore!"
| | |
| | ---- content: "This is my first post."
| |
| ---- Document: post2
| |
| ---- title: "Firestore Tips"
| |
| ---- content: "Here are some useful tips for Firestore."
|
---- Document: user2
|
---- name: "Emily"
|
---- email: "emily@example.com"
|
---- profileImage: "https://example.com/profiles/user2.jpg"
|
---- Collection: posts
|
---- Document: post3
|
---- title: "Firestore Security Rules"
|
---- content: "Learn how to secure your Firestore data."
参照フィールドを使用することで、異なるコレクション間の関連データを参照することができます。
例えば、SNSアプリケーションでは、ユーザーのドキュメント内に投稿の参照を持たせることができます。
参照フィールドを活用することで、ドキュメントのサイズを小さく保つことができますが、関連するデータを取得するために追加の読み込みが必要となるため、クエリの効率化が求められます。
Collection: users
|
---- Document: user1
| |
| ---- name: "John"
| |
| ---- email: "john@example.com"
| |
| ---- profileImage: "https://example.com/profiles/user1.jpg"
| |
| ---- Refs: [post1, post2]
|
---- Document: user2
|
---- name: "Emily"
|
---- email: "emily@example.com"
|
---- profileImage: "https://example.com/profiles/user2.jpg"
|
---- Refs: [post3]
Firestoreでは、クエリのパフォーマンンスを向上させるためにインデックスを設計する必要があります。
インデックスを適切に設計することで、クエリの実行時間を短縮し、コストを削減することができます。
例えば、ユーザーの名前を使用してユーザーを検索するクエリを考えてみましょう。
名前に基づいてユーザーを検索するためには、名前フィールドにインデックスを作成する必要があります。これにより、効率的な検索が可能となります。
firestore.collection("users").where("name", "==", "John");
Firestoreのデータモデルの設計は、データベースのパフォーマンスに直結する重要な要素です。
本記事では、Firestoreの設計ガイドとして、リレーションを活用した最適なデータモデルの設計方法について解説しました。
正しい設計を行うことで、Firestoreの効果的な利用が可能となります。是非、これらのガイドラインを参考にして、Firestoreの設計に取り組んでみてください。
Querier運営
「Querier(クエリア)」は社内向け管理画面を圧倒的な速さで、かつビジネスのスケールに合わせて柔軟に構築することができるローコードツールです。
このたび2024年11月11日に値の参照に関する仕様変更を予定しておりますので詳細について報告いたします。
more
データフローの通知設定機能・監査ログへのパラメータが追加されましたのでご紹介します。
more
データフローのアクションに永続化などに利用できるローカルストレージ機能を追加しました。
more
日本を健康に。多彩なフィットネスブランドを展開中。スタジオ付きの「JOYFIT」、24時間型の「JOYFIT24」、ヨガスタジオ「JOYFIT YOGA」、パーソナルジム「JOYFIT+」、家族向けの「FIT365」など、多彩なブランド展開で全国を席巻しているスポーツ事業。
more
管理画面の構築もWeb上で完結
エンジニアのためのローコードツール