Python 体系结构概念:数据库驱动的web文件管理系统

Python 体系结构概念:数据库驱动的web文件管理系统,python,django,architecture,Python,Django,Architecture,我想用Django Python开发一个小文件管理系统。但我的问题并不局限于Python开发人员。该系统将能够执行以下功能: 创建、删除文件夹 上传、创建、复制、移动文件 所以我的想法是,把文件和文件夹的路径放在数据库中。物理上,我会将文件保存在一个目录中,但文件夹将虚拟存在。与每个文件夹都存在的操作系统窗口不同。因此,我为演示创建了两个表: 表1:文档类型 class DocumentType(models.Model): id = models.IntegerField(prim

我想用Django Python开发一个小文件管理系统。但我的问题并不局限于Python开发人员。该系统将能够执行以下功能:

  • 创建、删除文件夹

  • 上传、创建、复制、移动文件

所以我的想法是,把文件和文件夹的路径放在数据库中。物理上,我会将文件保存在一个目录中,但文件夹将虚拟存在。与每个文件夹都存在的操作系统窗口不同。因此,我为演示创建了两个表:

表1:文档类型

class DocumentType(models.Model):
    id = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=200) #(File,Folder)
表2:文件

class Documents(models.Model):
    file = models.FileField()
    name = models.CharField(max_length=200)
    type = models.ForeignKey(DocumentType)
    parent = models.ForeignKey('self')
文档表中的字段“父”角色:

它将用于文件获取有关文件夹的信息,例如file=abc.tx和parent=“myfiles”。如果父字段为空或null,则该文件属于根文件夹

/myfiles/abc.txt

对于文件夹,它将用于定位父文件夹,例如name=“fun”和parent=“images”

/图片/乐趣

网页功能:

在页面加载时,我将填充文件夹类型记录。当用户单击任何文件夹时,将填充与该文件夹相关的所有文件

所以我的问题是,这是一个好方法吗?或者我需要创建物理文件夹

这不是一个公共应用程序,所以我不需要担心权限、共享等问题

请建议我做这件事的好方法


谢谢

如果我理解正确,您希望构建一个通过web管理的虚拟文件系统。由于您似乎可以接受将文件保存在“根”文件夹中(即,在现有文件系统的顶部),因此我将构建一个文件管理应用程序,该应用程序无需任何抽象,即可将文件和目录映射到“根”下的真实文件和目录。基本上你会得到你自己的小文件。既然你已经有了一个文件系统,为什么还要用一个关系数据库(在处理树方面非常糟糕)作为一个文件系统模拟呢?我刚刚创建了一个演示数据库设计来澄清问题。