2

我正在为我正在使用的系统(php、javascript、sencha)构建一个基本的文件管理组件。我试图以一种或另一种方式说服自己是否需要在数据库中存储有关通过系统管理的文件的额外信息。一方面,我不愿意通过尝试确保存储在数据库中的信息反映在文件系统中来使简单的设计复杂化。我想如果它们出于某种原因变得不同步,就会发生一场噩梦。即路径没有正确更新。依赖文件系统中的内容似乎更容易。我不需要像 ACL 这样的控制机制。

在大多数情况下,目录结构对用户是隐藏的,因为他们真的不关心它们存储在文件系统中的什么位置。有点像电子邮件附件。附件与数据库中的其他数据相关。我最初的想法是通过使用目录在文件系统中创建关系。例如:


...Project_id_1
......Theme_id_1
.........Topic_id_1
.........Topic_id_2
.........Topic_id_3
......Theme_id_2
。 .....Theme_id_3
...Project_id_2
...Project_id_3

ID 也将是与其相关的数据库中项目的记录 ID。我认为这会很好,除非我需要将其显示为树视图。我需要提取每个目录的关系,以便显示有意义的名称。也许这是一个很好的权衡,以换取其他地方获得的简单性。即不必在每次主题名称更改时重命名目录。

如果我决定在数据库中存储关于每个文件的更多信息,除了有用(但不是必需)信息(例如谁上传文件、日期等)之外,我还能获得什么。当然,我应该考虑其他任何其他原因设计也将不胜感激。大多数 OTS 的东西,要么提供了太多我不需要的功能,要么需要做太多的工作来改造系统。

4

2 回答 2

1

我想关键问题是您存储的附加信息是否具有足够的价值,值得麻烦。如果你建造它,他们会来吗?

我见过很多系统,有人做了很多工作却懒得问,有人会关心吗?

我不知道您的用户想要或需要什么,因此如果没有更多信息,我无法为您回答问题。

更新

回复您的评论:

当存在需要跟踪的关系时,我已将有关文件的信息存储在数据库中。想到的第一个例子是一个网络应用程序,用于跟踪我们组织生产的设备的建议设计更改,用户可以在其中添加附件(更详细的 Word 文档、工程图纸等)到他们的建议中,这些附件将被上传并与设计变更记录。因此,我们将所有这些文件扔到某个目录中,然后在数据库中记录每个附件,将其与设计更改记录联系起来。我现在忘记了除了设计变更记录的key和文件名之外是否还有其他数据,但肯定有上传时间、上传者等。

于 2011-01-24T21:02:29.450 回答
0

我会说:

今天:没有。不要根据未来可能的需要创作作品。

为了明天?是的,只要你真的需要。你提到你已经有一个数据库,所以它不像你必须咬掉很多开销。

于 2011-01-24T21:55:04.107 回答