代码之家  ›  专栏  ›  技术社区  ›  mare

存储/序列化对象列表

  •  1
  • mare  · 技术社区  · 14 年前

    例如,我们有一个TabGroup类,它将包含零个或多个tab。

    最好有一个Tabs列表属性还是一个Tabs引用列表?前提是选项卡由唯一的段塞标识。

    List<Tab>
    
    List<string>
    

    最后归结到

    1. 独立地序列化Tabgroups和tab,并通过序列化tabgroupgraph中的slug列表将它们分开并引用。

    • Tabgroup的整体保存在一个序列化文件中,保持了数据存储结构的简单性。

    • 每次对其中一个选项卡进行更新时,也必须更新(重新序列化)Tabgroup。

    最著名的职业2:

    • 更新标签不需要重新序列化标签组(至少在没有添加或删除任何内容时),因为引用保持不变;因此,只需再次序列化已更新的选项卡。

    最显著的缺点是2(这是我写这篇文章的主要原因)

    • 单个选项卡文件可以在文件存储中删除,但引用列表保持不变,因此在查看/呈现选项卡组时会发生错误/异常;必须实现复杂的逻辑才能呈现类似“Tab以不受支持的方式从数据存储中删除,是否也从Tabgroup中删除?”

    你建议怎么解决这个问题?我将接受涵盖广泛含义的答案。请注意,这里我们只讨论XML持久性,显然在SQL中我们没有多少实验空间,因为Tabgroups和tab通常都在不同的表中(它们之间有一对多的关系)。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Nick Larsen    14 年前

    除非您有一些非常有说服力的理由来解释为什么将数据存储复杂化是一个好主意,否则您通常应该保持简单。第二,看了两遍整篇文章,我真的不明白你的问题是什么。

    List<Tab> List<string> 如果每个字符串都代表一个选项卡的链接,那么我会支持 列表<选项卡>

    如果没有更多关于实际问题的具体信息,我怀疑除了根据假设的情况给出一些冗长的赞成/反对意见之外,任何人都不能给你更多的帮助。