繁体   English   中英

使用 MySQL 存储/上传文件:索引与 blob

[英]Storing/uploading file/s with MySQL: indexing vs blob

我想允许文件上传(公共/每个用户),但不确定如何正确执行。

我读过不建议为此使用 MySQL ,而应该使用文件系统来存储文件并在数据库中为它们建立索引。 我记得在 SO 中阅读了一些关于此的流行(有很多票)Q/A,但找不到它(如果可以,请发送链接)。

那我应该怎么做呢? 我应该使用一些无法访问的文件夹并将文件存储在那里,其中 ID 作为它们的名称,这个名称(文件的 ID)在带有 user_id 的文件表中,当用户请求文件时,我应该检查身份验证然后发送相应的文件文件给用户?

这个问题没有单一的答案。 这取决于您希望应用程序如何工作。 例如,如果您不需要限制访问,将文件放在可通过 http 访问的目录中可能会非常好。 然后你不需要通过任何代码传递文件,你只是直接链接到它。

将文件存储在数据库中也有正当理由。 例如,它自动包含在备份中,保证在您删除数据库行时将其删除,它遵守事务语义,等等。

这在 Stack Overflow 上经常被问到。 以下是一些我已经回答过的链接。

我也在我的书SQL 反模式第 1 卷:避免数据库编程的陷阱 中的“幻影文件”一章中介绍了这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM