我正在尝试为MongoDB中存储的文档实现一种访问控制列表。我有用户和项目,并且用户对项目拥有不同的权利,例如读,写,删除......如何在MongoDB中最好地存储这个n:m关系?
我提出了以下想法:
{itemID:"1", userID:"2", right:"write"}
{itemID:"1", users {"2" : "write", "3" : "read"}}
{_id:"1",..., users {"2" : "write", "3" : "read"}}
{_id:"1",..., users {"2" : "write", "3" : "read"}}
方法1& 2有明显的缺点,我必须自己查询mongo并自行连接表单ACL。在解决方案3的大多数情况下也是如此,所以对我来说,方法4似乎是最好的,但我很乐意听到一些意见!
干杯,
克劳斯