Cassandra 文档

版本

您正在查看预发布版本的文档。

定义应用程序查询

让我们尝试使用查询优先的方法来开始设计酒店应用程序的数据模型。应用程序的用户界面设计通常是开始识别查询的绝佳资源。假设您已经与项目利益相关者进行了沟通,并且您的 UX 设计师已经为关键用例制作了用户界面设计或线框图。您可能会有以下购物查询列表:

  • Q1. 查找距离给定兴趣点附近的酒店。

  • Q2. 查找有关给定酒店的信息,例如其名称和位置。

  • Q3. 查找距离给定酒店附近的兴趣点。

  • Q4. 查找给定日期范围内的可用房间。

  • Q5. 查找房间的费率和设施。

能够通过简写编号来引用查询,而不是完整地解释它们,通常很有帮助。此处列出的查询编号为 Q1、Q2 等,这正是它们在整个示例中的图表中引用的方式。

现在,如果该应用程序要取得成功,您肯定希望客户能够在酒店预订。这包括选择可用房间和输入其客人信息等步骤。因此,您显然还需要一些查询来解决概念数据模型中的预订和客人实体。但是,即使在这里,您也需要不仅从客户的角度考虑数据的写入方式,还要考虑下游用例将如何查询数据。

您可能会自然而然地首先专注于设计用于存储预订和客人记录的表,然后才开始考虑访问它们的查询。在讨论之前的购物查询时,您可能已经感受到了类似的压力,心想“但是酒店和兴趣点数据从哪里来?”别担心,您很快就会看到。以下是一些查询,描述了用户将如何访问预订:

  • Q6. 通过确认号查找预订。

  • Q7. 通过酒店、日期和客人姓名查找预订。

  • Q8. 通过客人姓名查找所有预订。

  • Q9. 查看客人详细信息。

所有查询都显示在下图中应用程序工作流的上下文中。图表上的每个框代表应用程序工作流中的一个步骤,箭头表示步骤之间的流程以及相关的查询。如果您对应用程序进行了良好的建模,工作流的每个步骤都将完成一项“解锁”后续步骤的任务。例如,“查看 POI 附近的酒店”任务帮助应用程序了解多个酒店,包括它们的唯一键。所选酒店的键可以用作 Q2 的一部分,以获取酒店的详细描述。预订房间的行为会创建一个预订记录,客人和酒店工作人员可以在以后通过各种其他查询访问该记录。

image

资料改编自 Cassandra,权威指南。由 O’Reilly Media, Inc. 出版。版权所有 © 2020 Jeff Carpenter、Eben Hewitt。保留所有权利。经许可使用。