这种问题主要还是看你们的场景,假如你的单词很多,你的用户也多,你想要再取巧也不行。 现在做一下假设,你的单词固定是1000个。 方式一:可以用redis的bitmap,来存储用户的单词阅读状态,1000个单词,每个用户有1000个状态,这样可以不用数据库,并且消耗的内存是很小的。 假设你的单词是有阅读顺序的,只能按照你们系统给点的顺序去一个个阅读 解决:这个只要给用户一个下标字段就可以满足了 假设你的系统用户阅读1000个单词耗时很短。比如一天就完成一天的阅读。 解决:可以借鉴你上面的思路,按照你的思路就会有一个用户,就会有1000条记录。但是我们可以逆思维。 打个比方用户阅读了900个单词的时候,你只记录用户还有哪些单词没有记录,这个时候你只用生成100条。 再假设用户已经阅读990个单词,你的表记录里面,只有10条记录,记录是那些单词用户还未阅读。 你这个场景,和常见的消息系统的设计是一样的。你的具体场景没有指明,但是大概就上面的思路,如果都不是,那就果断存。无须犹豫,这个是必然的。
这种问题主要还是看你们的场景,假如你的单词很多,你的用户也多,你想要再取巧也不行。
现在做一下假设,你的单词固定是1000个。
方式一:可以用redis的bitmap,来存储用户的单词阅读状态,1000个单词,每个用户有1000个状态,这样可以不用数据库,并且消耗的内存是很小的。
假设你的单词是有阅读顺序的,只能按照你们系统给点的顺序去一个个阅读
解决:这个只要给用户一个下标字段就可以满足了
假设你的系统用户阅读1000个单词耗时很短。比如一天就完成一天的阅读。
解决:可以借鉴你上面的思路,按照你的思路就会有一个用户,就会有1000条记录。但是我们可以逆思维。
你这个场景,和常见的消息系统的设计是一样的。你的具体场景没有指明,但是大概就上面的思路,如果都不是,那就果断存。无须犹豫,这个是必然的。