一个英语学习工具的设计与开发(本人学习)
一.基本需求:
1.添加生词,翻译,例子。
2.复习:查看生词,翻译,例子。按时间循环查看生词。
3.查看学习历史单词列表,按时间查询。
4.删除学熟的单词
二.Use-case分析:
粗略图
复习系统子图:
单词管理系统图:
三.分析类结构:
重要数据:用户,(单词,翻译,例子 时间)---〉学习记录
由上数据抽象出一个类:学习记录。
由于此系统没有对用户管理的需要,故没有抽象出用户类。
学习记录类:
基本属性:单词,翻译,例子,学习时间。
添加 :添加一个新的纪录。
删除 :删除一个记录。
查询 :查询学习记录。(分按时间查询,查询所有)(由于查询结果是多个记录即说明此操作不隶属于本类的某一个对象,所以最好为静态方法)
四.设计实体类
实体类:用于各层之间交互传参。直接由学习记录类得出。
学习记录实体类:
属性:单词,翻译,例子,学习时间
系统架构:
五.数据库设计 :
主要由实体类得出:
方案1:
Pk_id
单词(Word)
翻译 (Translation)
例子 (Example)
学习时间 (StudyTime)
方案2:
一个单词可以有多个翻译,多个例子。上表设计有些问题。
分割成:
单词表
Pk_Id
单词(Word)
翻译表
Pk_id
WordId
翻译(Translation)
例子(Example)
方案2 需要连接查询,产生迪卡尔集,效率低。况此系统没有考虑到根据汉语(即翻译列)写对应单词(即单词列)的类似考试的功能。所有学习记录的查询都回有迪卡尔集出现。
最后决定采用方案1的设计。
基本架构:
浙公网安备 33010602011771号