我有一个我最近一直在使用 MongoDB 的项目。基本上,我网站的核心元素是“项目”。每个项目都将包含一个嵌套的“字符串”对象,该对象将包含大量字符串......因此,每个项目都非常庞大,可以接近一兆字节或更多。因此,我希望将这些项目放在他们自己的收藏中。
我遇到的问题是我不确定如何将用户分配给项目。用户应该包含他们注册的项目列表,还是项目应该包含用户列表?我什么时候应该选择其中之一?还有更好的方法吗?(好久没接触MongoDB了,有点生疏了)
我有一个我最近一直在使用 MongoDB 的项目。基本上,我网站的核心元素是“项目”。每个项目都将包含一个嵌套的“字符串”对象,该对象将包含大量字符串......因此,每个项目都非常庞大,可以接近一兆字节或更多。因此,我希望将这些项目放在他们自己的收藏中。
我遇到的问题是我不确定如何将用户分配给项目。用户应该包含他们注册的项目列表,还是项目应该包含用户列表?我什么时候应该选择其中之一?还有更好的方法吗?(好久没接触MongoDB了,有点生疏了)
我无法立即想到两者之间有任何严重的停止差异。我想维护它的用户端可能更容易:
所以考虑到这些直接想到的事情,我可能会选择在用户中嵌入项目。
看看http://www.mongodb.org/display/DOCS/Schema+Design。适用于您的情况的指南是
一般来说,对于实体之间的“包含”关系,应该选择嵌入。不使用链接时使用链接会导致数据重复。
如果一个用户可以注册多个项目,并且一个项目可以注册多个用户,那么最好为 Projects 和 Users 设置单独的集合。