前一段时间,我实现了一个带有全局预定义目录结构(不可修改)的gdrive /类似于dropbox的应用程序,每个用户都可以使用该目录结构,但不限于(意思是:也能够添加和管理自定义文件夹)。数据库中许多相关数据的相同数据
静态目录结构是这篇文章的原因,因为我不满意目前的处理机制,并且会非常高兴,如果你能给我一个很好的建议,我可以改进它/改变这个更好。
目前我使用一个MySQL数据库,其中有一个表'文件夹',这(惊喜,惊喜)包含所有文件夹(预定义和自定义)。因此它具有文件夹名称,所有者和父文件夹的字段。
因为预定义的结构非常庞大,所以我不想为每个用户添加它到表中,因此我只用此结构的一个实例为文件夹表添加并将“owner”字段设置为NULL 。因此,要查找用户的所有文件夹,我只需要查询将此特定用户作为所有者或不属于任何人的那些文件夹。
这种方法目前效果很好,但对于文件夹的每个用户属性有一些主要缺点,例如,我想在每个目录中显示文档计数 - 包括子目录 - 这是每次使用非常慢的递归查询完成的。如果我只有每个用户文件夹结构(例如,通过添加一个额外的“文档计数”字段,可以更好地处理这个问题),每当文件夹中的文档发生某些事情时可以使用查询挂钩来更新该字段结构体)。
您对这个设计选择有什么看法?我是否应该保持这种状态,只需添加一个包含每个用户文件夹属性的附加表(例如像user_id,folder_id,document_count,last_modified,[我可以想到的任何其他属性])?如果直接在系统上处理文件夹(通过使用系统命令)并将它们保存在数据库之外,这会是一种更好的方法吗?或者你有没有其他的想法(或许是更合适的数据库?),这可以用更方便的方式进行管理。
感谢您的帮助! :-)
多个用户可以使用特定的文件夹? –
多少个文件夹?用户?文件?等等?你在说什么?数百万,或只有数千。只有成千上万,我建议建立一个逻辑结构,而不是担心性能。对于数百万人,我们来看看一些实际的模式和查询。 _使用这两种方法之一,您可以编写性能不佳的查询._ –