在php/mysql应用程序中与多个用户实现文件夹共享
我有一个php/mysql应用程序。有些用户有文件夹。文件夹只能有一级深度。每个文件夹可以有无限数量的文档。有关表格如下: 用户表:在php/mysql应用程序中与多个用户实现文件夹共享,php,mysql,Php,Mysql,我有一个php/mysql应用程序。有些用户有文件夹。文件夹只能有一级深度。每个文件夹可以有无限数量的文档。有关表格如下: 用户表: user_id(PK), name, password, etc 文件夹\u表: folder_id(PK), name, user_id(FK into user_table) 文件表 document_id(PK), user_id(FK), folder_id(FK), date, name, etc 要对文件夹和文档进行操作的所有查询都是 selec
user_id(PK), name, password, etc
文件夹\u表:
folder_id(PK), name, user_id(FK into user_table)
文件表
document_id(PK), user_id(FK), folder_id(FK), date, name, etc
要对文件夹和文档进行操作的所有查询都是
select/update/insert <blah, blah, bhah>
where user_id = %d
选择/更新/插入
其中用户\u id=%d
现在,我希望允许用户与其他用户共享他们的文件夹。我想以尽可能少的破坏性方式来做这件事。我还希望最小化由此产生的WHERE子句的运行时开销
我一直绞尽脑汁在谷歌上搜索,但还没有找到一个足够简单的解决办法。我可以考虑以类似于unix(读、写、执行)以及(所有者、组、其他人)机制的方式实现它。但对于我简陋的系统来说,这似乎有点太复杂了
如果有人能给我指点一下我可能采取的方法,我将不胜感激。我的目标很简单:
WHERE
用户id=%d
)文件夹id(FK)、用户id(FK)
*文件夹表*中的user\u id
表示文件夹的所有者。当所有者与其他用户共享此文件夹时,您可以将文件夹id和用户id(与之共享文件夹的用户)添加到folder\u user
表中
稍后,您可以将列access(enum'READ'、'READ_WRITE')
添加到同一个表中,以查看是否允许用户编辑文件夹中的文档
与组共享文件夹
user\u id(FK),group\u id(FK)
这听起来像是一个开销最小的计划。谢谢