应用开发工具:Microsoft Visual Studio 2010 旗舰版 - 简体中文 sp1—— Microsoft Visual C# 2010
数据库开发:Navicat for SQLite 10.0.11 Enterprise导航猫
应用程序:文档处理:Microsoft Office Professional Plus 2010,截图工具:SnagIt 10.0.1(2010)
操作系统名: Microsoft Windows 7 Ultimate
版本号:Version 6.1.7601 Service Pack 1 Build 7601
系统类型: x64
开发语言:C#语言,Sqlite数据库,Winform,.NET Framework 4.0
不同的开发源码来自:微软的http://www.codeplex.com/
闻名的http://www.codeproject.com/(具体项目后文会给出)
原料:
-
数据库设计部分:
- E-R图:
用户信息(USERS):{用户ID,姓名,密码 }
错题集信息(ERRORLIST):{错题编号,表名,题号ID,错误日期 }
综合题库信息/别类题库(COMPREHENSIVE_EXAM/ OTHEREXAM):{编号ID,所属类型,题型,问题,答案,图片,视频,评论,随机数,错题排名 }
题目类型信息(NODE):{节点ID,节点名,父节点 }
图文信息(IMGTEXT):{图文ID,所属类型,图片,短评,细评 }
数据字典(说明SQLite的数据类型四种:TEXT,REAL,BLOB,INTEGER)
数据名称 |
USERS |
||||
用户信息 |
名称 |
格式 |
范围 |
精度 |
说明 |
用户ID |
TEXT |
10 |
- |
主键 |
|
姓名 |
TEXT |
20 |
- |
不能为空 |
|
密码 |
TEXT |
8 |
不能为空 |
||
代码生成 |
CREATE TABLE "USERS" ( "UID" TEXT(10) NOT NULL, "Name" TEXT(20) NOT NULL, "Password" TEXT(8) NOT NULL,PRIMARY KEY ("UID" ASC) ); |
||||
数据名称 |
ERRORLIST(来自俩个表,COMPREHENSIVE_EXAM和OTHEREXAM) |
||||
错题集信息 |
名称 |
格式 |
范围 |
精度 |
说明 |
错题编号 |
TEXT |
10 |
- |
主键,关联用户ID |
|
表名 |
TEXT |
20 |
- |
不能为空 |
|
题号ID |
TEXT |
10 |
不能为空,关联综合题库表,和别类题库表 |
||
错误日期 |
TEXT |
10 |
格式(YYYY-MM-dd) |
||
代码生成 |
CREATE TABLE "ERRORLIST" ( "UID" TEXT(10) NOT NULL, "TableName" TEXT(20) NOT NULL, "TestID" TEXT(10) NOT NULL, "DateTime" TEXT(10), CONSTRAINT "fkey0" FOREIGN KEY ("UID") REFERENCES "USERS" ("UID"), CONSTRAINT "fkey1" FOREIGN KEY ("TestID") REFERENCES "COMPREHENSIVE_EXAM" ("TestID"), CONSTRAINT "fkey2" FOREIGN KEY ("TestID") REFERENCES "OTHEREXAM" ("TestID") ); |
||||
数据名称 |
COMPREHENSIVE_EXAM |
||||
综合题库 |
名称 |
格式 |
范围 |
精度 |
说明 |
编号ID |
TEXT |
10 |
- |
主键 |
|
所属类型 |
TEXT |
10 |
- |
关联NODE表中的NODE |
|
题型 |
TEXT |
4 |
- |
包括多选,单选,判断 |
|
问题 |
TEXT |
600 |
- |
包括题目和选项ABCDEF |
|
答案 |
INTEGER |
- |
用数字保存,ABCD代表1111,'A'代表0001,'对'代表0001,'错'代表0010 |
||
图片 |
BLOB |
360000 |
- |
以二进制的形式byte[] |
|
视频 |
TEXT |
20 |
- |
主要格式为AVI |
|
评论 |
TEXT |
600 |
- |
||
错题排名 |
INTEGER |
- |
默认为500,答对了减一,答错了加一 |
||
随机数 |
INTEGER |
- |
用来随机抽取题目 |
||
代码生成 |
CREATE TABLE "COMPREHENSIVE_EXAM" ( "TestID" TEXT(10) NOT NULL, "BelongTo" TEXT(10), "Type" TEXT(4) NOT NULL, "Question" TEXT(600) NOT NULL, "Answer" INTEGER NOT NULL, "Comment" TEXT(600), "Image" BLOB(360000), "Video" TEXT(20), "Rate" INTEGER NOT NULL DEFAULT 500, "Random" INTEGER, PRIMARY KEY ("TestID" ASC), CONSTRAINT "PK_BelongTo_Node" FOREIGN KEY ("BelongTo") REFERENCES "NODE" ("NodeID") ); |
||||
数据名称 |
OTHEREXAM |
||||
别类题库 |
名称 |
格式 |
范围 |
精度 |
说明 |
编号ID |
TEXT |
10 |
- |
主键 |
|
所属类型 |
TEXT |
40 |
- |
不同于COMPREHENSIVE_EXAM |
|
题型 |
TEXT |
4 |
- |
包括多选,单选,判断 |
|
问题 |
TEXT |
600 |
- |
包括题目和选项ABCDEF |
|
答案 |
INTEGER |
- |
用数字保存,ABCD代表1111,'A'代表0001,'对'代表0001,'错'代表0010 |
||
图片 |
BLOB |
360000 |
- |
以二进制的形式byte[] |
|
视频 |
TEXT |
20 |
- |
主要格式为AVI |
|
评论 |
TEXT |
600 |
- |
||
错题排名 |
INTEGER |
- |
默认为500,答对了减一,答错了加一 |
||
随机数 |
INTEGER |
- |
用来随机抽取题目 |
||
代码生成 |
CREATE TABLE "OTHEREXAM" ( "TestID" TEXT(10) NOT NULL, "BelongTo" TEXT(40) NOT NULL, "Type" TEXT(4) NOT NULL, "Question" TEXT(600) NOT NULL, "Answer" INTEGER NOT NULL, "Comment" TEXT(600), "Image" BLOB(360000), "Video" TEXT(20), "Rate" INTEGER NOT NULL DEFAULT 500, "Random" INTEGER, PRIMARY KEY ("TestID" ASC) ); |
||||
数据名称 |
NODE |
||||
题目类型信息 |
名称 |
格式 |
范围 |
精度 |
说明 |
节点ID |
TEXT |
10 |
- |
主键 |
|
节点名 |
TEXT |
40 |
- |
不能为空 |
|
父节点 |
TEXT |
10 |
自连接到节点ID |
||
代码生成 |
CREATE TABLE "NODE" ( "NodeID" TEXT(10) NOT NULL, "NodeName" TEXT(40) NOT NULL, "ParNodeID" TEXT(10), PRIMARY KEY ("NodeID" ASC), CONSTRAINT "PK_ParNode_Node" FOREIGN KEY ("ParNodeID") REFERENCES "NODE" ("NodeID") ); |
||||
数据名称 |
IMGTEXT |
||||
图文信息 |
名称 |
格式 |
范围 |
精度 |
说明 |
图文ID |
TEXT |
10 |
- |
主键 |
|
所属类型 |
TEXT |
40 |
- |
不能为空 |
|
短评 |
BLOB |
360000 |
不能为空 |
||
细评 |
TEXT |
600 |
可以为空 |
||
代码生成 |
CREATE TABLE "IMGTEXT" ( "ImgTextID" TEXT(10) NOT NULL, "BelongTo" TEXT(40) NOT NULL, "Image" BLOB(360000) NOT NULL, "BriefComments" TEXT(100) NOT NULL, "DetailedComments" TEXT(600) ); |
设计模式:
题外话
提示:推荐用WORD2010画E-R图
原因一:点到点自动附加图形
原因二:节点联动
原因三:样式多变美观