識別應用程式的存取模式

已完成

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

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

識別客戶實體的存取模式

讓我們從電子商務資料庫中的客戶實體開始。 下圖顯示三個實體,以及它們之間的關聯性。 這三個實體是 CustomerCustomerAddressCustomerPasswordCustomer 實體與 CustomerAddress 具有 1:Many 關聯性。 客戶CustomerPassword 有 1:1 的關係。

顯示客戶實體關係型模型的圖表。

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

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

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

將客戶實體模型化

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

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

顯示模型化客戶檔的圖表。