我正在为我正在使用的系统(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 的东西,要么提供了太多我不需要的功能,要么需要做太多的工作来改造系统。