2016-12-08 82 views
0

我很感激有關如何在Azure表存儲中實現這一點的一些意見。我已經閱讀了幾次設計指南,但這種情況似乎沒有被涵蓋。如何爲Azure表存儲中的鍵/值屬性建模?

通用用例是將0 ... n個鍵/值對連接到系統中的一個對象,其中所有可能的值都是預定義的。

假設我們的應用程序被許多學校用來向學生展示他們可以在當前學期選擇的所有課程。在學期開始之前,管理員登錄系統以創建新班級並附加屬性,以便學生可以根據他們的偏好過濾班級列表。管理員管理所有有效的屬性和有效的屬性值。

添加到新學期的第一堂課是「藝術&工藝品」,管理員認爲他們需要添加一個新屬性以表明需要參加此課程需要額外費用。他們進入屬性管理頁面並添加「附加成本」作爲屬性,並具有三個可能的屬性值:「無附加成本」,「低於20美元」和「超過20美元」。然後,他們將「附加成本」屬性附加到新的「Arts &工藝品」類中,並指定「超過20美元」的值。

回答

1

在插入實體時,您似乎想要動態定義和添加屬性到表中,請參閱this sample

此外,您可以在列表中存儲這三個可能的屬性值(「無額外成本」,「低於20美元」和「超過20美元」),並將列表序列化爲JSON字符串並將其存儲爲實體的屬性值。

List<string> values = new List<string>() { "No Additional Cost", "Under $20", "Over $20" }; 

var jsonSerialiser = new JavaScriptSerializer(); 
string jsonval = jsonSerialiser.Serialize(values); 
0

您可以使用從存儲SDK合併方法的附加屬性添加到現有的實體,在這種情況下,「額外費用」屬性將附加到「藝術&工藝品」的實體。

在客戶端,可以使用DynamicTableEntity作爲最靈活的選項,這是一個帶有分區和行鍵的鍵/值字典。

相關問題