將小型查閱實體模型化

已完成

我們的資料模型包含兩個小型參考資料實體:ProductCategoryProductTag。 這些實體用於參考值,並透過 1:Many relationship 與其他實體建立關聯。

此圖表顯示產品類別、產品、產品標籤和產品標籤資料表的關聯性。

在本單元中,我們會在文件模型中將 ProductCategoryProductTag 實體模型化。

將產品類別模型化

首先,針對類別,我們以 idname 資料行當作唯一屬性將資料模型化,再將資料放入名為 ProductCategory 的新容器中。

接下來,我們需要選擇分割區索引鍵。 讓我們來探索要對此資料執行的作業。

我們會建立新的產品類別、編輯產品類別,然後列出所有產品類別。 建立和編輯產品類別作業不會經常執行。 客戶造訪網站時,我們的電子商務應用程式通常會列出所有產品類別。 因此,我們最常執行的是最後一個作業。

這最後一個作業的查詢如下所示:SELECT * FROM c。 由於 id 選為分割區索引鍵,此查詢將會跨分割區,雖然我們想將這些大量讀取作業最佳化,但也請盡可能只使用單一分割區。 我們也知道產品類別資料成長幅度永遠不會接近 20 GB,因此,藉助此資訊將資料模型化時,我們應設法只運用單一分割區查詢來列出所有產品類別。

此圖表顯示列出所有產品類別的跨分割區查詢。

為了將此少量資料強制轉型回到單一分割區,我們可以將實體鑑別子屬性新增至結構描述,並將此屬性當作此容器的分割區索引鍵。 針對容器中此類型的所有文件,我們指派常數值給此屬性,可確保現為單一分割區查詢。 在此案例中,我們將屬性命名為 type,並給予常數值 category。 查詢現如下所示:SELECT * FROM c WHERE c.type = ”category”

此圖表顯示模型化的產品類別以分割區索引鍵為類型,以值為類別。

將產品標籤模型化

接下來是 ProductTag 實體。 此實體的功能與我們在上一節討論的 ProductCategory 實體幾乎完全相同。 在此讓我們運用相同方法,將文件模型化以納入 id 和 name 屬性,並建立名為 type 的實體鑑別子屬性,在此案例中,使用常數值 tag。 讓我們建立名為 ProductTag 的新容器,並將 type 當作新的分割區索引鍵。

此圖表顯示模型化的產品標籤容器以分割區索引鍵為類型,以值為標籤。

有些人認為這項將小型查閱資料表模型化的技術很奇怪。 不過,以此方式將資料模型化,讓我們有機會在下一個課程模組中進一步最佳化。