2012-01-30 96 views
2

我有一个网站,用户注册并上传他们的图片和视频作为他们的投资组合。每个用户都以某种标准显示,当访问者点击他们的姓名时,他们会看到投资组合。MySQL用户和文件夹

我的问题是:哪个更好,每个用户都有文件夹(在注册名称或某种类型的unique_id时创建文件夹),以便他们可以在其中上载其图像和视频,或重命名上传的文件并放置一切都在一个文件夹中或者用二进制blob转换将图像直接存储在数据库中?

+0

[在DB中存储图像的可能的副本 - 是或否?](http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay) – 2012-01-30 17:24:52

+0

可能相关:[Storing DB中的图像 - 是或否?](http://stackoverflow.com/q/3748/367456),[在数据库中存储文件有什么优点和缺点?](http://stackoverflow.com/q /367456分之2458739)。 – hakre 2012-01-30 17:27:02

回答

1

从性能角度来看,我认为每个用户拥有一个目录会更好。 NTFS分区上目录的最大限制似乎超过40亿,这对任何应用程序来说应该都足够了。

如果你使用的是Linux/Unix,你可以拥有的最大文件夹数量也会因分区类型而异,但是如果NTF的限制足够大,我想ext3或者任何被记录的文件系统应该有足够的空间限制也是如此。

关于是否更好地将图像存储在数据库或文件系统上,其他人已经指出了一个众所周知的related question here。我的观点是,一般来说,任何一种解决方案都能很好地工作,并且两者都有优点和缺点,从而使决策最终成为一种品味问题。

1

文件或数据库如前所述重复。

关于文件存储:

有很多不同的方法来执行此操作。这取决于所需的性能,用户数量,文件数量等。

例如,如果一个人上传成千上万的文件,将它们全部放在一个文件夹中并不明智。

如果您拥有数百万用户,则不需要像userdata/{userid} /这样的结构,因为您将在userdata /中获得数百万个文件夹。这也会带来可能的问题。

例如,您可以通过将用户数据保存在不同服务器上来实现某种分片方法。所以当选择“只保存为普通文件”时,可能有很多选项。