我正在考虑长时间在物体上存储增量的各种方法(30年是常见的情况)。一种选择是使用单个增量表来存储每个对象的更改。因为增量需要存储这么长时间,所以delta表会变得非常大,所以我考虑的选项是至少将它配对一点,不要将每个delta存储为字符串。
delta表主要存储来自.NET的基元(int
,long
,decimal
,string
等。增量表看起来像
| RowIdentifier | FieldIdentifier | NewValue | Timestamp |
协议缓冲区(protobuf-net或其他一些protobuf实现)是否适合这种长期存储?
答案 0 :(得分:3)
答案是否。
考虑一下您的要求以及您尝试应用的解决方案。
30年的数据需要以能够高速读取的方式存储吗?可能没有。
我认为XML将是我的第一选择,因为它是“明文”,它是“自我描述”的缩影,并且将来可以被1000种不同的编程语言阅读。如果存储是一个问题,GZIP还将有一个带XML的字段日。
答案 1 :(得分:3)
我看不出它不会有任何原因。如果绝对必要(你知道,如果现有的语言都不起作用),那么规范就会记录下来并且非常简单。
可附加使得它对delta也非常有用。
所以:它会起作用吗?是
但是,如果问题是“我应该吗?” - 如果需要更多信息。可能是的,可能没有。