NoSQL-在MongoDB中怎么解决多对多的关联

NoSQL-在MongoDB中怎么解决多对多的关联

虐人心 发布于 2017-06-03 字数 377 浏览 1193 回复 3

想问下在MongoDB中你们是怎么处理多对多的关系的?
比方说,那个用户表和角色表。 常见的一般用户都会对应着很多角色,同样的角色也会对应着很多用户。像这种关系用SQL数据库的话可以建一个用户关系表。
如果是拿到MongDB里一般是怎么处理的,求教下在这方面有经验朋友。

Users: Id, Name
Roles: Id, Name
UserRoles: UserId, RoleId

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

想挽留 2017-10-26 3 楼

使用mongodb处理1对多可以选择embed或者reference

但是实现多对多的关系,就只有靠reference的方式了
这个关系型数据库的同样的道理,需要维护独立的关系表,就如同你所设计的UserRoles

归属感 2017-06-24 2 楼

可以把这种结构迁到mongoDB中,使用起来和mysql一样就可以了。如果用一张表处理的话,角色变动操作会很繁琐。这里使用mongoDB的目的在于它的速度吧。

瑾兮 2017-06-06 1 楼

如果要实现数据库表内容的快速查询,就需要对相应的列建立索引。不管是1对1,1对M,还是M对N,如果要提供双方向的查找,就需要建立两个索引。使用SQL数据库,建立索引和维护数据完整性的工作都由数据库做了,使用起来比较方便,但是如果使用NoSQL数据库,这些工作都要自己做。