0
我有一所擁有許多班級(1-10級)的學校,每個班級都有很多學生,我需要每年存儲學生的記錄這樣我可以更好地進行分區。所以它基本上是Class-> N年 - > N的學生。如何模擬此問題以將其存儲在Dynamo DB上我如何在Dynamo DB中建模1:N:N關係
我有一所擁有許多班級(1-10級)的學校,每個班級都有很多學生,我需要每年存儲學生的記錄這樣我可以更好地進行分區。所以它基本上是Class-> N年 - > N的學生。如何模擬此問題以將其存儲在Dynamo DB上我如何在Dynamo DB中建模1:N:N關係
在NoSQL上,設計取決於查詢訪問模式(QAP)。正如你還沒有提到QAP,你想如何檢索數據。我假定了一個典型的場景並提供了下面的設計。
表:學生
分區鍵:學生證
排序關鍵字:一年
其他屬性:學生姓名,班級等
年被定義爲排序鍵,因爲學生可以在不同年份的多個年級(1-10)學習。對於例如,
在情況下,如果你想獲得的所有學生一年的ID,你可以年創建GSI(全球二級指數)。該指數
分區鍵:今年
如果您有任何其他訪問模式,請更新的問題。以便我們可以討論該特定查詢訪問模式(QAP)的答案。
讓我把這個不同作爲一個商人,我運行多個商店,每個商店每天都有多個交易。每個交易包含一組訂購的產品。 作爲一名商人,我需要跟蹤我的庫存,管理賬戶/帳單等 – Bukhtawar
在NoSQL中,關係並不重要。您需要提供訪問模式,即如何查詢數據庫表。示例:由店主或交易或商店進行查詢。這比關係更重要。你需要在這裏完全不同。設計NoSQL數據庫時,您需要刪除SQL設計帽。否則,它將無法正常工作。 – notionquest