将文件与数据库相关联的最佳方法

时间:2018-05-09 05:29:11

标签: database sqlite

因此,举例来说,我想设置一个包含发票数据的SQLite数据库。让我们说每张发票都有一个日期,发票号和与之相关的公司,以简化起见。有没有一种方法可以让数据库访问或存储指定发票的PDF文件(~300-700kb /文件)?如果这对于什么可能效果不错有任何其他想法?

非常感谢任何帮助

2 个答案:

答案 0 :(得分:2)

SQLite确实支持BLOB数据类型,该数据类型完全按照输入的方式存储数据。来自documentation

  

当前实现仅支持字符串或BLOB长度最大为231-1或2147483647

此限制远大于您对每个文件300-700 KB的预期需求,因此您应该可以实现。另一件需要考虑的事情是数据库的大小。除非你预计在100 TB左右,否则数据库大小限制也不应该成为问题。

答案 1 :(得分:2)

您可以将数据(每个文件)存储为BLOB,这是一个字节数组/流,因此该文件基本上可以存储在BLOB中。

但是,将文件路径存储起来可能更有效(参见链接文章),或者只是文件名(取决于标准),然后使用它来检索和查看发票。

高达100k左右,将文件存储为BLOB效率更高。您可能会发现这是一个有用的文档,可以阅读SQLite 35% Faster Than The Filesystem