應用開發工具: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圖
原因一:點到點自動附加圖形
原因二:節點聯動
原因三:樣式多變美觀