数据库和逻辑如何设计 目前遇到一个项目
要搞个小系统
A 为帐号 表 accounts 会不停更新新的(如 a b c d ....) (每天增加几万个) T 为任务 表 tasks 固定的几百个个(如 1 号,2 号,3 号)
T 里的每个任务 A 只能做一次
要求: 需要 1 号任务 请求一下随机获得一个 A 的帐号(没有做个 1 号任务的帐号)
自己的想法是 建个黑名单数据库表 black 每完成一个 增加一行 如 a-1 a-2 b-2 c-3
然后获取的时候 select 后面加个 not in 来判断
select * from accounts where id not in (select id from black) order by rand()
但是感觉这样效率很低
英文 black 的数据库会增加得非常快
1 万个帐号 对应 100 个任务 就是 100 万条记录 估计没多久就上亿了 而且我不知这样 not in 这种效率如何
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.