ローコードに抵抗感があったが、UIパーツもAPIも開発が不要に。すぐ画面が用意でき、助かっている。
ファンコミュニケーションズは、日本最大級の成功報酬型アドネットワーク企業グループです。アフィリエイトサービス「A8.net(エーハチネット)」やスマートフォン(iOS/Android)アプリ専用アフィリエイトサービス「seedApp(シードアップ)」などを運営
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(クエリア)」は社内向け管理画面を圧倒的な速さで、かつビジネスのスケールに合わせて柔軟に構築することができるローコードツールです。
ファンコミュニケーションズは、日本最大級の成功報酬型アドネットワーク企業グループです。アフィリエイトサービス「A8.net(エーハチネット)」やスマートフォン(iOS/Android)アプリ専用アフィリエイトサービス「seedApp(シードアップ)」などを運営
more
2012年5月創業のフルカイテン株式会社。 「在庫をフル回転させる」をコンセプトに、機械学習を駆使したSaaS『FULL KAITEN』を提供し、在庫問題の解決に取り組む。
more
みなさんこんにちは。Querier開発チームです。今回はMySQLとクエリアを連携してユーザー情報の一覧とメールアドレス変更ができる管理画面を10分以内で構築してみたいと思います。
more
近年、Dockerを使用してアプリケーションの開発やデプロイを行うことが一般的になり、その中でもNext.jsを利用したWebアプリケーションの構築が増えてきました。
more
管理画面の構築もWeb上で完結
エンジニアのためのローコードツール