怎样设计数据库,来记录每个用户背过的单词呢?
如果使用一个单独的表,userId,wordId 来记录的话,1万个用户,每个人背1千个单词,这个表就1千万行了。
这样是不是不太合理?
请大佬给个思路。
怎样设计数据库,来记录每个用户背过的单词呢?
如果使用一个单独的表,userId,wordId 来记录的话,1万个用户,每个人背1千个单词,这个表就1千万行了。
这样是不是不太合理?
请大佬给个思路。
2 回答704 阅读✓ 已解决
1 回答760 阅读✓ 已解决
1 回答826 阅读✓ 已解决
1 回答755 阅读✓ 已解决
1 回答521 阅读✓ 已解决
2 回答851 阅读
1 回答975 阅读
这种问题主要还是看你们的场景,假如你的单词很多,你的用户也多,你想要再取巧也不行。
现在做一下假设,你的单词固定是1000个。
方式一:可以用redis的bitmap,来存储用户的单词阅读状态,1000个单词,每个用户有1000个状态,这样可以不用数据库,并且消耗的内存是很小的。
假设你的单词是有阅读顺序的,只能按照你们系统给点的顺序去一个个阅读
解决:这个只要给用户一个下标字段就可以满足了
假设你的系统用户阅读1000个单词耗时很短。比如一天就完成一天的阅读。
解决:可以借鉴你上面的思路,按照你的思路就会有一个用户,就会有1000条记录。但是我们可以逆思维。
你这个场景,和常见的消息系统的设计是一样的。你的具体场景没有指明,但是大概就上面的思路,如果都不是,那就果断存。无须犹豫,这个是必然的。