用于在数据库中存储不同文件的数据类型

pat*_*ues 2 sql database postgresql file sqldatatypes

我试图使数据库接受postgres数据库表中的不同文件。我要支持的文件具有不同的mime类型。我要支持pdf,word,纯文本和powerpoint。问题是我不知道该选择哪种数据类型。pgadmin的文档(即时通讯工具)非常不令人满意。谢谢

Boh*_*ian 5

虽然您可以将文件内容存储在数据库中,但可以考虑存储文件路径,并使用文件系统存储文件。

在IT世界中,“您什么都可以做任何事”,但这并不意味着您应该这样做。

在这种情况下,您试图将数据库用作文件系统,但是数据库不如用于存储文件内容(通常是“大”数据)的文件系统有效或实用。它会:

  • 使备份更长,更大
  • 降低插入查询的速度(更多I / O)
  • 使您的日志文件更大(更慢并更频繁地填充)
  • 使访问文件变慢(查询与简单磁盘I / O)
  • 要求您通过数据库访问文件(麻烦,无法使用浏览器等)
  • 等等

  • 存储文件路径也有一些弊端:您必须复制访问权限,不能以事务方式存储文件,需要确保数据库不引用不存在的文件,需要为确保文件系统不包含未引用的文件,您需要两个不同的备份,并且无法通过SQL访问文件内容(麻烦是因为需要更改技术)。简而言之:没有明显的赢家。两种解决方案都是正确的-一切都取决于要求。 (2认同)