我的新计划——Day 3
说在前面:今天是“我的新计划”系列的第三天,通过前一天的学习已经了解了node模块对mysql数据库连接的配置,现在我就要开始设计数据库模型和针对接口写SQL了。
【 设计数据模型】—— 初版
根据第一天的思维导图,我们知道这个库起码有两张表,一张“单词表”、一张“错词表”,且这两张表没有关联,那就分别给它们命名为“notebook”和“errorbook”。
这个时候来思考“单词表——notebook”该有哪些字段:自增长ID,主键、唯一辨识符(id)
状态标识符,用来软删除,清除仅仅让状态为0,不做真正的删除(deflag)
录入时间,可能以后有用 (input_time)
中文含义,即单词的中文翻译 (cn_word)
英文单词,即英文单词的拼写 (en_word)
那我们的第一张表就设计完成了,接下来的“错词表——errorbook”也差不多,那我们直接套用吧~初始化表
【 单词录入页面 】该页面主要负责记录单词,将学习的单词录入数据库,只需要一个添加接口
单词录入: /web/api/mynotebook/inputNewWord
对应SQL:select into notebook (cn_word,en_word,input_time) values (?,?,?);
【 单词复习页面 】该页面主要负责通过随机数抓取数据,然后显示在前端页面
随机抓取单词:/web/api/mynotebook/reviewWord
对应SQL:select * from notebook where id = "?";回答正确可以继续调用该接口渲染页面,回答错误即采用以下接口
录入错词表:/web/api/mynotebook/recordErrorBook
对应SQL:select into errorbook (cn_word,en_word,input_time) values (?,?,?);
【 错词复习页面 】该页面主要显示错词记录
检索错词表:/web/api/mynotebook/listAllErrWord
对应SQL:select * from errorbook where deflag='1';在错词本内回答正确则清除本条记录,但是我们不做真正意义上的删除,只将deflag变为0,在进行SQL的时候跳过0状态即可
删除该条记录:/web/api/mynotebook/correctErrWord
对应SQL:update errorbook set deflag='1' where id='?';
【 词典页面 】该页面主要检索所有记录的单词,方便总的复习,所以只需要“查”
单词录入: /web/api/mynotebook/listAllWord
对应SQL:select * from mynotebook where deflag='1';
说在最后:今天我的工作主要完成了后台接口的实现和手写SQL查询数据,要是SQL语句测试没有问题的话明天就要开始画前端页面了,再对接口。
我是Luvsta,谢谢支持~