在sqlite中存储protobuf有什么好处吗?

时间:2014-10-03 11:39:02

标签: sqlite protocol-buffers

在我的移动应用程序(混合)中,我想允许用户将他的数据带到另一台设备。我的终端没有服务器端组件。用户携带的数据将包含图像,音频,视频以及文本和时间戳等。我的设计演变如下

1。将每个条目存储在JSON文件中,将图像,音频和视频作为数据URI,并将此文件导出到云同步平台。这种方法的问题在于,尽管JSON比XML更好,但可能有更好的选择。见下文

2。将每个条目存储在BSON文件中,将图像,音频和视频作为数据URI,并将此文件导出到云同步平台。这种方法的问题在于,如其网站所述仍然会重复字段名称,并且protobuf可能更适合。

第3。将每个条目存储在协议缓冲区文件中,其中包含图像,音频和视频作为数据URI,并将此文件导出到云同步平台。

然后当我偶然发现greenDAO他们提到

  

greenDAO允许您直接保留协议缓冲区(protobuf)对象   进入数据库。

通过在sqlite DB 中存储protobuf对象,我将获得什么好处?能够以protobuf格式导出sqlite文件而不是包含对象的文件吗?

1 个答案:

答案 0 :(得分:3)

嗯,数据仍然必须以某种方式序列化到数据库中。 greenDAO只是隐藏了你的序列化。由于您有特定的需求,您可能最好构建自己的解决方案,更好地根据您的需求量身定制。

如果您没有预料到字段名称会发生​​变化,为什么不将条目存储为数据库行?这具有许多优点,包括具有可排序和可搜索条目的能力。