選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

項目集合 - 如何在 DynamoDB 中建立關係的模型 one-to-many

焦點模式
項目集合 - 如何在 DynamoDB 中建立關係的模型 one-to-many - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 DynamoDB 中,物品集合是共享相同分割區索引鍵值的物品群組,這表示這些物品是相關聯的。項目集合是在 DynamoDB 中建立 one-to-many關係模型的主要機制。物品集合只能存在於配置為使用複合主鍵的資料表或索引。

注意

物品集合可以存在於基底資料表中,也可以存在於次要索引中。有關物品集合如何與索引互動的詳細資訊,請參閱 本機次要索引中的項目集合

請考慮下表,其中顯示三位不同的使用者及其遊戲內物品清單:

具有不同屬性的三種不同物品集合。

對於每個集合中的特定物品,排序索引鍵是由用於將資料分組的資訊 (例如 inventory::armorinventory::weaponinfo) 組成的串連。每個物品集合可以具有不同組合的屬性作為排序索引鍵。使用者 account1234 具有 inventory::weapons 物品,而使用者 account1387 沒有 (因為他們還沒有找到)。使用 account1138 只使用兩個物品作為排序索引鍵 (因為他們還沒有物品清單),而其他使用者使用三個物品。

DynamoDB 允許您選擇性地從這些物品集合中擷取物品,以執行以下操作:

  • 從特定使用者擷取所有物品

  • 從特定使用者擷取一個物品

  • 擷取屬於特定使用者的特定類型的所有物品

使用物品集合組織資料來加快查詢

在此範例中,這三個物品集合中的每個物品都代表一個玩家,和我們根據遊戲和玩家的存取模式選擇的資料模型。遊戲需要什麼資料? 什麼時候需要? 需要的頻率為何? 這樣做的成本是多少? 這些資料建模決策是根據這些問題的答案做出。

在這個遊戲中,有一個頁面為玩家呈現其武器庫存清單,還有另一個頁面呈現盔甲。玩家開啟他們的庫存清單時,會先顯示武器,因為我們希望該頁面能夠以極快速度載入,之後才會載入後續的庫存清單頁面。隨著玩家獲得更多的遊戲內物品,這些物品類型可能會相當大,因此我們決定每個庫存清單頁面在資料庫的玩家物品集合中,都獨立自成一個項目。

以下區段詳細介紹如何透過 Query 操作與物品集合互動。

主題

    在本頁面

    隱私權網站條款Cookie 偏好設定
    © 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。