我想在巫婆中制作一个web应用程序,会有一些用户使用不同的项目(比如c项目,c ++项目等等)。我的问题是我应该如何构建我的3个表:用户,项目,文件?一个用户可以有很多项目(也有共享项目),项目可以有文件夹(包)和文件,但在文件系统上我不想让文件夹层次结构只指向数据库中的特定文件。
即。我是user1,我有project1,其中包含3个文件夹:标题,资源,源和每个文件夹或根目录中有几个文件。问题是我想从user1获取所有与项目相关的数据并将其放在树视图中,但在服务器上,所有文件都在随机生成的名称的同一文件夹中。
答案 0 :(得分:6)
您可以使用类似下面的结构。
或者,您可以使用某种BLOB
(MEDIUMBLOB
)将文件存储在数据库中。
users
id
name
...
projects
id
name
...
user_projects
user_id
project_id
folders
id
name
project_id
parent_folder_id
...
files
id
filename
parent_folder_id
name_in_filesystem
...
您有一个users
列表和一个projects
列表。 user_project
表允许您将多个用户分配给项目,并将多个项目分配给用户。
每个folder
属于一个项目,并且可以有parent_folder_id
来允许层次结构。每个文件都有一个parent_folder_id
,它是对包含它的文件夹的引用。 name_in_filesystem
是用于存储文件的随机名称。