我们正在尝试将文档库(文件管理)构建为我们的核心应用程序之一。它显然从简单的开始。
我需要有关此特定模块的数据库设计的反馈。初步设计:
任何输入都会很棒。可能在将来有工作流程,许可等等
答案 0 :(得分:2)
请务必查看商业解决方案(例如Oracle Content Management)和开源解决方案(例如Drupal)。如果你能避免它,你真的不想从头开始。
虽然您的架构有几点......
您可能希望将文件夹视为一种可以包含其他文件的文件。这允许您在文件夹中拥有文件夹,这非常有用。为此,您可以省略Folder表,并在File中只有一个布尔字段(Y / N),表示此文件是否为文件夹。将有另一个文件字段,其FileID包含文件夹文件。您的架构已经指出了文件和文件夹的强烈相似性。 (但是像这样的层次结构很难在RDBMS中有效地建模。)
如果FileImage为null,则每个FileExtension都可能有一个默认的FileImage。这将需要另一个在FileExtension上键入的表,并且还包含FileImage。
答案 1 :(得分:1)
了解UNIX文件系统的设计方式。它们有许多 inode ,它们本身没有名称。所有文件,目录,符号链接都是 inode 的子类型。他们都只从目录列表中获取他们的名字。这允许您在多个目录中使用相同的文件/使用不同的名称(在UNIX术语中称为硬链接)。
答案 2 :(得分:1)
一些建议:
答案 3 :(得分:-1)
Didn't someone design this database before?。 WinFX ......不...... WinZS ......不......明白了。的 WinFS的强>