首页 > 解决方案 > 将 PowerPoint、PDF 和此类文档文件保存到 Postgres 数据库

问题描述

我一直在寻找一种将各种文件类型(即:PDFJPEGPowerPoint )从使用JDBC的 Web 表单保存到Postgresql数据库的方法。我在 Postgres 中遇到过二进制数据类型,但有人告诉我这不是最佳实践。

是否有另一种方法可以解决这个问题,或者序列化是唯一的选择吗?

标签: postgresqlfilepersistencedocument

解决方案


存储在数据库中

如果您坚持将此类文档存储数据库中,那么确实,二进制类型的存在就是为了这个目的。当您拥有数据库无法通过许多其他数据类型之一在语义上理解的数据时,二进制类型就是后备。

Postgres 知道整数是什么,aTIMESTAMP WITH TIME ZONE是什么,以及地理空间坐标是什么,并且知道如何搜索和排序这些值,但 Postgres知道如何理解 PowerPoint 或 PDF 文件的任何意义或意义。从数据库引擎的角度来看,这些文件只是一堆难以理解的位。

这种字段中的文件值以可爱的首字母缩略词而闻名:BLOB,表示二进制大对象。

存储在数据库之外

通常,我看到的最佳实践是将此类文档存储在数据库之外的持久存储文件系统中。

在数据库中,存储一个表示文件系统路径或 URL 的字符串,以便在需要时找到该文件。


推荐阅读