アプリケーションクエリの定義
ホテルアプリケーションのデータモデル設計を始めるにあたって、クエリファーストのアプローチを試してみましょう。アプリケーションのユーザーインターフェース設計は、クエリの特定を開始するために使用できる優れた成果物です。プロジェクトの利害関係者と話し合い、UXデザイナーが主要なユースケースのユーザーインターフェース設計またはワイヤーフレームを作成したとしましょう。次のようなショッピングクエリのリストがある可能性があります。
-
Q1. 特定のPOI付近のホテルを探す。
-
Q2. 特定のホテルに関する情報(名前、場所など)を探す。
-
Q3. 特定のホテル付近のPOIを探す。
-
Q4. 特定の期間に利用可能な客室を探す。
-
Q5. 客室の料金とアメニティを探す。
クエリを完全に説明するのではなく、簡略番号で参照できると便利なことがよくあります。ここにリストされているクエリには、Q1、Q2などの番号が付けられており、例全体で図の中で参照される方法です。
アプリケーションを成功させるには、顧客がホテルで予約できるようにする必要があります。これには、利用可能な客室の選択やゲスト情報の入力などの手順が含まれます。したがって、概念データモデルの予約エンティティとゲストエンティティにアクセスするクエリについても、顧客の視点からデータの書き込み方法だけでなく、ダウンストリームのユースケースでデータがどのようにクエリされるかという点も考慮する必要があります。
自然な傾向として、最初に予約レコードとゲストレコードを格納するテーブルの設計に焦点を当て、その後でそれらにアクセスするクエリの検討を開始することが考えられます。以前のショッピングクエリの議論でも、「ホテルとPOIのデータはどこから来たのか?」と考えて、同様の緊張を感じたかもしれません。心配しないでください、すぐにわかります。ユーザーが予約にアクセスする方法を説明するクエリをいくつか紹介します。
-
Q6. 確認番号で予約を検索する。
-
Q7. ホテル、日付、ゲスト名で予約を検索する。
-
Q8. ゲスト名ですべての予約を検索する。
-
Q9. ゲストの詳細を表示する。
すべてのクエリは、以下の図のアプリケーションのワークフローのコンテキストで示されています。図の各ボックスはアプリケーションワークフローの手順を表し、矢印は手順間のフローと関連するクエリを示しています。アプリケーションを適切にモデリングした場合、ワークフローの各手順は、後続の手順を「アンロック」するタスクを実行します。たとえば、「POI付近のホテルを表示」タスクは、アプリケーションが独自のキーを含む複数のホテルについて学習するのに役立ちます。選択したホテルのキーは、ホテルの詳細な説明を取得するためにQ2の一部として使用できます。客室の予約行為により、ゲストとホテルスタッフが後でさまざまな追加クエリを通じてアクセスできる予約レコードが作成されます。

『Cassandra, The Definitive Guide』からの改編資料。O'Reilly Media, Inc.発行。著作権 © 2020 Jeff Carpenter, Eben Hewitt. All rights reserved. 許可を得て使用しています。