我有两个表/集合;用户和组。用户可以是任意数量的组的成员,并且用户也可以是任意数量的组的所有者。在关系数据库中,我可能有第三个表,名为 UserGroups,其中包含 UserID 列、GroupID 列和 IsOwner 列。
我正在使用 MongoDB,并且我确信文档数据库中的这种关系有不同的方法。我是否应该将组和组作为所有者的列表作为两个 ObjectID 数组嵌入到 Users 表中?我是否还应该将组表中的成员和所有者列表存储为两个数组,从而有效地镜像关系,从而导致关系信息重复?
或者桥接用户组表对于多对多关系来说是文档数据库中的合法概念吗?
Thanks
我所看到的以及我当前使用的是每个文档中带有节点 ID 的嵌入式数组。
因此文档 user1 具有属性组:[id1,id2]
文档 group1 具有属性 users:[user1]。文档 group2 还具有属性用户:[user1]。
这样您就可以获得一个 Group 对象并轻松选择所有相关用户,对于 User 也是如此。
创建和更新对象时这需要更多的工作。当你说两个对象相关时,你必须更新这两个对象。
MongoDB 中还有一个概念 DBReferences,根据您的驱动程序,它会在检索文档时自动提取引用的对象。
http://www.mongodb.org/display/DOCS/Database+References#DatabaseReferences-DBRef http://www.mongodb.org/display/DOCS/Database+References#DatabaseReferences-DBRef
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)