DB上的数据存储:服务器上的PostgreSQL“bytea”移动应用程序上的SQLite“BLOB”

时间:2017-02-07 12:00:02

标签: database postgresql sqlite blob bytea

我想在数据库而不是网址上使用图像存储。

在我的服务器端,我使用PostgreSQL和read here,“bytea”是用于存储文件的建议格式。

在我的移动应用程序端,数据库是SQLite。似乎数据存储建议格式有“BLOB”as described here

我想知道,到目前为止我无法清楚地发现,如果从PostgreSQL的“bytea”到SQLite的“BLOB”有任何转换吗?

1 个答案:

答案 0 :(得分:2)

byteaBLOB都是数据库中用于存储原始二进制数据的数据类型。它们不是编码,如base64等,所以没有转换为本身

但实际上,您的应用程序将以至少5种形式处理此数据:

  • 一个PostgreSQL bytea
  • 服务器端应用程序中的变量(可能是字符串或字节数组)
  • API中用于将服务器链接到客户端的数据流(可能以某种ASCII安全形式编码,例如base64)
  • 客户端移动应用程序中的变量
  • SQLite BLOB

数据将依次流经这些表单中的每一个,因此您需要担心的转换不是PostgreSQL到SQLite,而是PostgreSQL到/从服务器端语言,服务器端语言到/从API编码,以及等等。如果您将服务器更改为使用MySQL,或者将数据存储在单独的文件中,或者找到一种即时创建的方法,则不应对移动应用程序进行任何更改。这个过程的两端是完全分开的。

这与使用正确的函数明确理解编码一样多,就像将文件存储到磁盘可能涉及程序环境操纵数据一样,但是你只需要写file.put(data)或者其他什么