从 SQL Server 到 MONGODB:设计问题
我第一次想看到除 SQL Server 之外的其他数据库用于我的开发。
MongoDB 是我的项目的一个很好的选择。
对我来说比较难理解的是MONGODB的“设计”。
用户(表)
Id
Name
Address
朋友(表)
IdUser
IdFriends
通过这个 SQL 表,我想让一个用户成为其他用户的朋友,比如 Facebook。
MongoDB 的最佳设计是什么?
For the first time I want to see other database than SQL Server for my development.
MongoDB is a good alternative for my project.
What is difficult to understand is "the design" of MONGODB for me.
User (table)
Id
Name
Address
Friends (table)
IdUser
IdFriends
With this SQL table, I want to allow an user to became a friend of other user like Facebook.
Which is the best design for MongoDB?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
考虑将朋友 id 嵌套在
User
文档中:一方面,您不需要连接来获取朋友(至少是 ids),因为所有内容都嵌套在单个文档中,并且模式看起来更令人愉快。另一方面 - 为了获取真正的朋友,你遇到了 N+1 问题。然而通过 id 获取相当便宜,还要考虑缓存。
Consider nesting friends ids inside
User
document:On one hand you don't need joins to fetch friends (at least ids), because everything is nested within a single document and the schema looks more pleasant. On the other - to fetch the actual friends, you hit N+1 problem. However fetching by id is rather cheap, also consider caching.