考试系统数据库设计
??? 歷經(jīng)多天對(duì)考試系統(tǒng)需求的研究,終于數(shù)據(jù)庫也有了些原型。
??? 這次的數(shù)據(jù)庫設(shè)計(jì),以三范式為原則,本著理論與實(shí)踐結(jié)合,達(dá)到一種更合理更簡潔的目的進(jìn)行設(shè)置。但是,粒度的大小真的是不很好把握。說一下,我遇到的一種比較新的情況。
??? 舉個(gè)比較通俗的例子。一張紙上可以寫n行字,一本書可以有n張紙。在進(jìn)行數(shù)據(jù)庫設(shè)計(jì)時(shí),我就遇到了這種情況。那這種問題怎么解決呢?拿例子來說。就是考試,一個(gè)考生一張?jiān)嚲?#xff0c;每張?jiān)嚲砩嫌衝道題。(由于是隨機(jī)抽題進(jìn)行考試,每個(gè)人的考題都是不一樣的。)這樣的話,數(shù)據(jù)庫中我們要記錄每個(gè)考生的試卷以及答題情況。下面是幾種數(shù)據(jù)庫的設(shè)計(jì)情況,記錄下來,有時(shí)間在分析。
第一種情況,操作比較方便
| ?考號(hào) | ?考試編號(hào) | ?試卷id???? | ? 試題id????? | ?考生所答答案 | ? 得分 |
| ?01 | ?01 | ?01 | ?1 | ?A | ?0 |
| ?01 | ?01 | ?01 | ?2 | ?A | ?1 |
| ?01 | ?01 | ?01 | ?3 | ?B | ?1 |
| ?01 | ?01 | ?01 | ?4 | ?C | 0? |
| ?02 | ?01 | ?02 | ?2 | ?A | ?1 |
| ?02 | ?01 | ?02 | ?5 | ?C | ?1 |
| ?02 | ?01 | ?02 | ?3 | ?B | ?1 |
???第二種情況
| ?考號(hào) | ?考試編號(hào) | ?試卷id | ?試卷試題所在的表格 |
| ?01 | ?01 | ?01 | ?Paper01 |
| ?02 | ?01 | ?02 | ?Paper02 |
| ? | ? | ? | ? |
| ? | ? | ? | ? |
???Paper01
| ?試題id | ?正確答案 | ?考生答案 | ?得分 |
| ?1 | ?B | ?A | ?0 |
| ?2 | ?A | ?A | ?1 |
| ?3 | ?B | ?B | ?1 |
???Paper02
| ?試題id | ?正確答案 | ?考生答案 | ?得分 |
| ?2 | ?A | ?A | ?1 |
| ?5 | ?C | ?C | ?1 |
| ?3 | ?B | ?B | ?1 |
???這樣,有一個(gè)總表,以考號(hào),考試編號(hào)為主鍵,試卷id為索引,找到各個(gè)試卷所在的表,并進(jìn)行操作。
?? 第三種想法想法:
| ?考號(hào) | ?考試編號(hào) | ?試卷id | ?備注(其中所包含所抽到試題的id,考生所答的答案,題正確答案,得分。按此先后順序進(jìn)行排列) |
| ?01 | ?01 | ?01 | ?{(1,A,B,0),(2,A,A,1),(3,B,B,1)} |
| ?02 | ?01 | ?02 | ?{(2,A,A,1),(5,C,C,1),(3,B,B,1)} |
???這樣在一個(gè)表中也能存儲(chǔ)所有的數(shù)據(jù)。而且一張?jiān)嚲硪粡埍硪脖容^清晰。
??
?????????
轉(zhuǎn)載于:https://www.cnblogs.com/yanmei-yaomy/archive/2011/07/26/3025112.html
總結(jié)
- 上一篇: asp.net播放声音
- 下一篇: 可拖拽的ImageButton