关于活动评选相关逻辑设计请教
设计场景如下:
目前有一个活动发布和参与的功能,采用 laravel 框架实现的,一共有两个表来保存业务数据:
表一:events
用于发布活动信息,每个活动用户均可自由参与
id | titlle |
---|---|
1 | 活动 1 |
2 | 活动 2 |
表二:active
用于记录参与活动的用户记录
ID | user_id |
---|---|
1 | 888 |
2 | 999 |
目前的需求如下:#
1、分别列出参与活动的用户数据和未参与活动的用户明细(用户总数据单独有一个 user 表)
2、根据参与活动人数的多少,对活动进行动态排名
自我尝试办法:
对于已参加活动的用户明细,可以直接从 active 表获取,但是想要查询出某一项活动未参与用户的列表,通过 join 关联查询时候,如果去判断关联值为 null 的话,会造成全表扫描,而且数据量大的情况下,加载时间非常高。
不知道还有什么办法能更高效的实现这个办法,或者借助其他一些外部插件实现均可。
推荐文章: