識別應用程式的存取模式

已完成

當您設計 NoSQL 資料庫的資料模型時,目標是要確保資料的作業會以最少的要求完成。 若要做到這一點,我們需要了解資料之間的關聯性,以及應用程式存取資料的方式。 這些存取模式很重要,因為它們與這些關聯性一起決定如何將各種實體的屬性分門別類,並儲存在 Azure Cosmos DB for NoSQL 容器內的文件中。

在 Azure Cosmos DB for NoSQL 中,文件稱為項目,容器則經常是集合的同義詞。

識別客戶實體的存取模式

讓我們從電子商務資料庫中的客戶實體開始。 下圖顯示三個實體,以及它們之間的關聯性。 這三個實體為 CustomerCustomerAddressCustomerPasswordCustomer 實體與 CustomerAddress有一對多的關聯性。 CustomerCustomerPassword 有 1 對 1 的關聯性。

客戶實體的關聯式模型圖。

在我們的應用程式中,我們會對客戶實體執行三項作業:

  • 建立客戶:當新的使用者第一次造訪電子商務網站時,系統將會建立新的客戶。
  • 更新客戶:當現有的使用者更新其設定檔資訊時,系統將會更新其客戶記錄。
  • 取出客戶:當現有的使用者造訪網站時,他們會以其密碼登入。 在該相同的工作階段期間,他們需要存取其他客戶資料 (例如,地址) 來購買新項目。

針對其中每一個作業,我們同時需要此資料全部。 如果已模型化為個別文件,則會需要多次往返伺服器,才能建立、更新及擷取客戶資料。 這效率不佳。

將客戶實體模型化

Azure Cosmos DB 會將資料儲存為 JSON,因此我們可以將 CustomerCustomerAddress 之間的 1 對多關聯性模型化,並將客戶地址資料內嵌為陣列。 針對 CustomerCustomerPassword之間的 1 對 1 關聯性,我們可以將其內嵌為新單一客戶文件中的物件。 然後,電子商務應用程式可以在單一要求中建立、編輯或取出客戶資料。

下圖顯示客戶實體看起來的樣子。

客戶文件模型圖。