首页 > 解决方案 > Postgresql 数据库的文件存储系统

问题描述

我目前有一个需要存储大量文件的数据库。但是,我也存储有关特定文件的信息。我希望能够将文件存储在包含此元数据的数据库旁边,我想知道如何最好地做到这一点。这些文件是自动生成的,并且采用适合文件系统的分层结构。

最初的想法是存储包含所有文件的文件系统的根目录的路径,然后引用与此相关的文件(例如../file_group_1/file_1)。在研究这一点时,很难找到一种方法将文件存储在这个文件系统中,不用说,在管理文件系统的数据库旁边运行一个单独的服务器。

我研究过 Postgresql 中的大对象类型,但我也担心安全隐患。有没有更好的解决方案?

标签: databasepostgresqldatabase-designrelational-database

解决方案


用于制作最佳文件系统。我建议使用文件夹和文档层次结构。
文档表将引用实体表和 parent_doc_id 用于层次逻辑。您应该根据需要使用递归 CTE 来获取文档树。
在文件系统中,您可以使用带有文档引用的路径。
ie
entity => 1001
Document 1 => 1002
Document 2 => 1003

我建议在文件系统中使用整数路径以避免重复的文件名重叠。
对于文档 1:1001\1002
对于文档 2:1001\1003
可以存储在表中以供参考的实际文件名和路径。


推荐阅读