【问题标题】:How can I model key/value attributes in Azure Table Storage?如何在 Azure 表存储中为键/值属性建模?
【发布时间】:2016-12-08 23:56:21
【问题描述】:

我希望能就如何在 Azure 表存储中实现这一点提供一些意见。我已经阅读了几次设计指南,但似乎没有涵盖这种情况。

一般用例是将 0...n 个键/值对附加到系统中的一个对象,其中所有可能的值都是预定义的。

假设许多学校使用我们的应用程序向学生展示他们在当前学期可以选择的所有可用课程。在学期开始之前,管理员登录系统创建新班级并为其附加属性,以便学生可以根据自己的喜好过滤班级列表。管理员管理所有有效属性和有效属性值。

新学期新增的第一门课是“Arts & Crafts”,管理员看到需要添加一个新的属性来表示上这门课需要额外的费用。他们进入属性管理页面并添加“额外成本”作为具有三个可能属性值的属性:“无额外成本”、“低于 20 美元”和“超过 20 美元”。然后他们将“Additional Cost”属性附加到新的“Arts & Crafts”类,并分配一个“Over $20”的值。

【问题讨论】:

    标签: azure-table-storage


    【解决方案1】:

    您似乎想在插入实体时动态定义并添加属性到表中,请参考this sample

    此外,您可以将这三个可能的属性值(“No Additional Cost”、“Under $20”和“Over $20”)存储在一个列表中,并将该列表序列化为 JSON 字符串并将其存储为实体的属性值。

    List<string> values = new List<string>() { "No Additional Cost", "Under $20", "Over $20" };
    
    var jsonSerialiser = new JavaScriptSerializer();
    string jsonval = jsonSerialiser.Serialize(values);
    

    【讨论】:

      【解决方案2】:

      您可以使用 Storage SDK 中的 Merge 方法向现有实体添加其他属性,在这种情况下,“附加成本”属性将附加到“Arts & Crafts”实体。

      在客户端,您可以使用 DynamicTableEntity 作为最灵活的选项,它是一个带有 Partition 和 Row 键的键/值字典。

      【讨论】:

        猜你喜欢
        • 2019-04-04
        • 1970-01-01
        • 2012-08-06
        • 2011-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-28
        相关资源
        最近更新 更多