我有非常规的表users
(id,login,password)。每个用户都可以上传pdf文件(必须小于2 MB)。这反映在表users_pdf
中:
id | pdf | user_id
---------------------
1 | some_pdf| 1
2 | pdf2 | 1
3 | pdf3 | 3
嗯,问题是:我应该将文件路径存储到pdf
列中的pdf,还是真正的pdf文件?
如果我存储路径,那意味着处理文件系统文件夹,有时可能非常痛苦(例如,使用备份)。如果我将文件存储在数据库本身,它会很慢,特别是如果表中有大约一百万个条目,对吧?
那么,你会建议什么?
UPD。使用文件系统意味着每个用户的文件夹,如
-users
|----user_id_1
|--file.pdf
|----user_id_2
|--file.pdf
|--file.pdf
|----user_id_3
|--file.pdf
|--file.pdf
,所以如果我想拥有一百万用户,那个文件结构会死得慢,对吗?
答案 0 :(得分:1)
你说它不到2mb,所以在表格中存储文件是一种选择。虽然最好的解决方案是拥有像露天这样的文档管理系统,甚至使用像svn这样的现有版本管理解决方案。 (而不是直接存储在文件系统中,您需要一个内容管理系统)。您可以只存储文档的URL。这将有助于您维护,避免数据库膨胀,不会影响您的数据库性能,更重要的是通过利用现有解决方案来简化您的编程(我说的是版本管理,您可能需要它)。< / p>
答案 1 :(得分:1)
存储二进制数据不一定很慢。 BLOB和类似的数据类型存储指向列中数据的指针,以及其他地方的实际数据,因此选择和更新非常简单。我认为将实际文件存储在数据库中没有什么大的缺点,只要你做得正确。