启动程序:
- 检查csv文件中的level属性和date属性,若无则设置为0和当前date
- 检索符合当天date的单词, 将其导入到python_list中, 每个单词及其属性以dict形式保存
- 若用户设置了每日背词数量, 则优先推送level>0的单词, 否则不安排优先顺序
推送程序:
- 推送单词本体, 用户尝试回忆单词含义,
- 回车键显示含义, 用户认知正确则level+1, 同时计算date,
- 若用户认知错误则level清零, 同时安排单词到list末尾, 稍后再次回忆
- 记忆单词结束以后, 将list(包含已更新的level和date)写回到数据库中
导入功能:
用户可以自行增加单词(其中不含level和date属性)并merge到数据库中, 不会影响到已存在的的单词及其属性
虽然我还没有开始写程序, 但是我想到了一个问题, 当数据库中的单词数量日积月累地增多时, 检索单词的属性会变得缓慢甚至卡顿, 于是我想到了另一种方案:
date并不作为单词的属性而是作为文件名,
当天打开app时直接在文件夹中寻找名为date.csv的文件并读取到list中,
level值发生变化时计算相应的date:
- 若date.csv已存在则写入文件的末尾,
- 若不存在则创建一个date.csv并写入到第一行
导入程序则需要创建一个识别库(仅包含单词本身, 无其他属性), 避免导入重复的单词, 符合规则的单词直接进入date.csv文件
WordsLearnerPro Board