gpt4 book ai didi

database - 将文件与一段数据相关联的最佳方式是什么?

转载 作者:太空狗 更新时间:2023-10-30 01:46:22 26 4
gpt4 key购买 nike

我有一个在表格中创建记录的应用程序(我知道是火箭科学)。用户希望将文件(.doc、.xls、.pdf 等)关联到表中的单个记录。

  • 我应该存储数据库中的文件?这岂不是使数据库膨胀?

  • 我应该将文件存储在文件中吗服务器,并将路径存储在数据库?

执行此操作的最佳方法是什么?

最佳答案

我认为您已经准确掌握了解决此问题的两种最流行的方法。各有利弊:

将文件存储在数据库中

大多数 rbms 都支持在数据库中存储 blob(或二进制文件数据、.doc、.xls 等)。所以你在这里没有开辟新天地。

优点

  • 简化数据备份:您备份数据库,您拥有所有文件。
  • 元数据(关于文件的其他列)和文件本身之间的联系是可靠的,并且内置于数据库中;因此,它是获取文件数据的一站式商店。

缺点

  • 当您将所有二进制数据存储在数据库中时,备份很快就会变成一场巨大的噩梦。您可以通过将文件保存在单独的数据库中来减轻一些麻烦。
  • 没有 DB 或 DB 的接口(interface),就没有简单的方法来获取文件内容以修改或更新它。
  • 一般来说,与文件系统相比,编码和协调数据上传和存储到数据库更难。

将文件存储在文件系统上

这种方法非常简单,您将文件本身存储在文件系统中。您的数据库存储对文件位置的引用(以及关于该文件的所有元数据)。这里一个有用的提示是标准化磁盘上文件的命名模式(不要使用用户给你的文件,你自己创建一个并将他们的文件存储在数据库中)。

优点

  • 将您的文件数据与数据库完全分开。
  • 易于维护文件本身(如果您需要更改或更新文件),您可以在文件系统本身中进行维护。您可以通过应用程序轻松完成此操作,也可以通过新的上传来完成。

缺点

  • 如果您不小心,您的文件数据库可能会与文件本身不同步。
  • 安全性可能成为一个问题(如果您不小心),这取决于您存储文件的位置以及该文件系统是否可供公众使用(我在这里假设通过网络)。

最终,我们选择了文件系统路线。一旦我们锁定任何漏洞并将文件流出(而不是直接从文件系统提供服务),它更容易快速实现,易于备份,非常安全。它在两个不同的政府应用程序中以几乎相同的格式运行了大约 6 年。

J

关于database - 将文件与一段数据相关联的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/616762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com