【发布时间】:2011-12-17 00:11:49
【问题描述】:
我正在开发一个允许用户上传文件(图片和其他)的网站。我在这方面没有任何经验,并希望获得一些关于存储和索引这些文件的正确方法的输入。
虽然我希望有一个能够很好地扩展到大容量数据的架构,但我目前并不担心极高(facebook-、google-scale)的容量。
我正在考虑将文件存储在文件系统上
/files/{username}/
然后有一个数据库uploads,每个用户都有自己的表,其中包含他上传的每个文件的文件名(以及 URL)(以及我可能想要存储的任何其他额外信息)。
这个的数据库端(给每个用户自己的表)对我来说似乎效率很低,但是在单个表中维护所有文件的记录似乎并不正确,因为每次单个文件时都需要搜索整个表访问。
我之所以考虑为每个用户提供自己的表,是因为它是一种简洁而独特的方式,可以跨表分片数据,并在查找给定用户的文件时减少搜索时间。
【问题讨论】:
标签: database file-upload filesystems webserver