2011-04-21 76 views

回答

1

嗯,这部分取决于你想要对他们做什么,以及你认为是多数人。

与索引数据库中的列一样,此方案可能会使某些操作受益并对其他操作有害。

例如,在一个简单的方案中,没有有可用日期,能够根据其名称的一部分找到图像可能最终会变得更加困难,因为您不知道它在哪里将会。我用这个方案对于像日志文件,但效果很好,因为我已经知道其中这将是:

/logs/2011/01/2011_01_14.log 

,并没有去寻找它。

现在,您已经解决了特定的问题,因为您的数据库条目也保存了日期,所以我无法看到您的方案出现任何直接问题。这并不是说有没有任何 :-)

我的建议是做最简单的事(平目录格式)最初和唯一的担心,当它成为一个问题。由于您拥有日期,因此将所有图像移动到不同的目录上是一件简单的事情。

当然,如果您已经实现了单独的目录,请坚持。同样,如果方法有缺陷,未来应该相对容易调整。

一个你可能要考虑的是存储位置(绝对的,或相对于已知点)在数据库中为好,而不仅仅是日期的事情。然后你会使用它(而不是日期上的操作)来定位文件。

这将允许您完全更改放置文件的方法,而无需更改位于其中的任何代码。

+0

文件名在36个字符格式(2f34fsc0-81fd-11DA-9156-02036a0f8df6a)的GUID,我想,在未来可按月上传约2000-6000的文件,是否有必要拆这个文件夹? – morandi3 2011-04-21 22:48:37

+0

那么,这取决于你将存储多少个月:-)这也取决于你将使用哪个文件系统。其中一些非常有效,有些则不是。在每月6000个并且没有删除的情况下,在遇到问题之前,您可能会发现自己拥有两年的数据。这是很多时间来看待问题。 – paxdiablo 2011-04-21 23:02:14

+0

我希望能运行这个应用程序至少2 - 3年,并且文件存储在Linux服务器上。我想避免稍后更改文件位置,因为通讯中可能包含一些图像。 – morandi3 2011-04-21 23:12:56

1

这听起来没问题。我跑了一个照片启动大约5年,并使用类似的结构来存储照片。它应该适度放大(我们有≈1M张照片)。我还会考虑存储图像的sha1或md5散列,以便您可以轻松检测到重复项,并确保在将文件保存到磁盘之前对文件的名称进行规范化。

相关问题