mongodb数据第二天刷新重置该如何建表?

环境:
一个简单的todo app,
有2种类型的todo,

  • 一种只记录一次,点击完成即删除
  • 一种带循环属性,当日点击完成就消失,第二天会重新出现
还需要记录每天完成的内容(包括循环todo每天的完成情况)

目前是计划这样建表的

Todo表

  • title:标题
  • progress:todo进度,比如今天已经喝了2杯水
  • target:todo计划目标总数,比如今天计划喝8杯水
  • isLoop:是否是循环的todo
  • createdAt:创建时间

Record表

  • todoId
  • title
  • progress
  • target
  • createdAt:创建时间

新建Todo的时候,
如果todo实例isLoop是false的话,直接保存到Todo表中,
如果todo实例isLoop是true的话,保存到Todo表中的同时再保存一个record实例到Record表中,record实例的todoId指向todo实例的_id。

然后每天第二天的凌晨,查找Todo表中所有isLoop都为true的实例,在Record表中创建与之一一对应的新的实例。 => 操作A

本人写前端较多,以前写的后端业务都偏简单,想咨询下这种业务场景的有更好的解决方案吗?
希望大佬们不吝赐教,给些关键字也可以,感谢


更新方案:

感谢大佬指点,确实是我想的太复杂了,前端的处理可以省掉后端那边自动化生成新的一天的todo。
现在新的流程是这样,
在点击完成某一个习惯todo的时候,在Todo表中查找到该todo实例,
然后比较该todo实例的updatedAt和当前时间,
如果不是同一天,则在Record表中创建一条对应的record实例,保存新建record实例的recordId到todo实例中(todo表追加一个lastRecordId),
如果是同一天,则利用todo实例中的recordId字段在Record表中查找对应的最新的record实例进行更新。
请问大佬们这种思路有改进的地方吗,谢谢🤝

阅读 1.7k
1 个回答

我看你描叙,是想做个备忘录或者任务管理类似的软件对吧,循环任务你没必要记录Record呀,你前端直接判断,如果是循环任务,你就前端显示就行了,如果循环任务做了你就记录record,没做就没必要做record的嘛