我有一个活动报名的小程序,一个用户可以报名多个活动,一个活动也可以被多个用户报名;还有收藏功能,也是如此请问该如何设计?
我只想到了2种:
第一种:
acts活动表 [ {
_id: 123, title: '...',
likedUsers: ['用户openId1' , '用户openId2'....],
joinedUsers: ['用户openId1' , '用户openId2'...],
......
}]
users用户表 [
{ _id: 1234, openId: '...'},
......
]
这样如果我要查询某个用户参加了多少活动,都有哪些活动,感觉有点而且性能不好,而且比较费劲
第二种:
acts活动表 [ { _id: 123, title: '...', ...} ......]
userJoinActs: [ { _id: 123, openId: 'abc', actId: '123' } ]
users用户表 [ { _id: 1234, openId: '...', ......} ......]
但是这种如何多对多联表查询呢?
第一种貌似会有并发问题,操作时得加事务
第二种可以用lookup多表关联查
第一种。