Tag: 数据存储

存储数据的最佳(免费)方式? 如何更新文件系统?

我对如何解决这个问题有一个想法,但我想知道我的问题是否更简单,更易于扩展。 我正在研究的程序有两种基本forms的数据:图像和与这些图像相关的信息。 与图像相关联的信息先前已存储在极其简单的JET数据库(四个表)中,这在存储的字段中变得既慢又不完整。 我们正在转向数据存储的新实现。 鉴于所涉及的数据结构简单,我认为数据库过度。 每个图像将具有它自己的信息(捕获参数),将是一组相互关联的图像的一部分(比如在相同的三十分钟时间内拍摄),然后是一个更大的组的一部分(由同一个人拍摄) )。 现在,我将人们存储在具有唯一标识符的字典中。 然后每个人具有不同图片组的列表,并且每个图片组具有图片列表。 所有这些类都是可序列化的,我只是序列化和反序列化字典。 相当简单的东西。 图像是分开存储的,因此字典的大小不会变成天文数字。 问题是:当我需要添加新的信息字段时会发生什么? 是否有一种简单的方法来设置这些数据结构以考虑未来可能的修订? 在过去,我在C中处理这个问题的方法是创建一个带有大量空字节(至少是ak)的可序列化结构,以便将来扩展,结构中的一个字节表示版本。 然后,当程序读取结构时,它将知道基于大量switch语句使用哪个反序列化(旧版本可以读取新数据,因为无关数据将进入被忽略的字段)。 C#中是否存在这样的方案? 就像,如果我有一个类是一组String和Int对象的类,然后我将另一个String对象添加到结构中,我如何从磁盘反序列化一个对象,然后将字符串添加到它? 我是否需要让自己拥有多个版本的数据类,以及一个采用反序列化流并根据存储在基类中的某些版本信息处理反序列化的工厂? 或者是类似字典的类,非常适合存储此类信息,因为它会自动反序列化磁盘上的所有字段,如果添加了新字段,我可以捕获exception并用空白字符串和Int替换这些值? 如果我使用字典方法,是否存在与文件读/写相关的速度命中以及参数检索时间? 我认为如果一个类中只有字段,那么字段检索是即时的,但在字典中,与该类相关的开销很小。 谢谢!