想实现用户之间的互相关注的功能,所以在User类下面设置了两个User自身的多对多关系,分别表示用户的关注者和被关注者,生成两个中间表用来存放User的id。
貌似多对多的关系很少用到,在查询的过程中也不是很好用,有什么比较好的实现方法吗?
想实现用户之间的互相关注的功能,所以在User类下面设置了两个User自身的多对多关系,分别表示用户的关注者和被关注者,生成两个中间表用来存放User的id。
貌似多对多的关系很少用到,在查询的过程中也不是很好用,有什么比较好的实现方法吗?
8 回答6.1k 阅读
1 回答2.1k 阅读✓ 已解决
1 回答1.9k 阅读✓ 已解决
2 回答1.5k 阅读
1.9k 阅读
1 回答911 阅读
977 阅读
不是很清楚为什么需要两个中间表。
感觉一个中间表足够了:字段1和字段2分别表示关注者和被关注者。
jack, rose (jack关注rose)
rose, jack (rose关注jack)
两条代表都存在则代表jack和rose互相关注。
查询的话,可以考虑redis等缓存,第一次去数据库会慢点,但整个用户会话的过程中用到内存数据库的话效率会很高。