最近,小菜遇到了數據庫設計上的一個問題,但願各位大俠再次,直抒己見,幫忙分析一下。也可有更好的設計,請直接提出來。數據庫
要求:數據庫(SQL Server 2005)存儲每一個學生,單個客觀題答案、分數,主觀題單個分數。數據庫設計
問題:設計網上閱卷數據庫,其中數據庫掃描數據存儲設計,遇到問題。問題難點在於數據量龐大,中型聯考,預計考試人數10萬人左右,每人預計考試9科目(未分文理以前),粗略估計每科考試主觀與客觀總共100道題左右,10*9*100估計源數據在5000萬~9000萬左右,如屢次考試的話,數據量將會翻倍增加,如何在數據庫中存儲這龐大的數據,給我帶來的很是頭問題的問題。性能
個人思路:大數據
1. 每次考試每次科目學生做答內容存儲爲單個表,每一個小題爲此表的一列,這樣一張表的行數爲10萬(以10萬人聯考作參考),可是動態建立的列數爲120+列(以每科120個題作參考),則每次考試要建立9張此類。spa
優勢:每次考試沒必要過多建立表(9張/次),且單表數據少(10萬級左右)設計
缺點:單表列數不固定,且單表列數120列左右(沒用過這麼多列不知道,性能如何),列數太多且不易統計。統計
2. 每次考試各個科目各個小題存儲爲單個表,即要建立9(以9科目做參考)*100(單科100題作參考)=900張/每次,裏面存儲此科目此小題下全部參加考試人員的答題記錄,10萬/張表。數據
優勢:每次考試單表結構簡單,單表數據少(10萬級左右),列數固定且列數簡單查詢
缺點:每次考試新建900(以9科目900小題作參考)表,數據庫壓力大。co
3. 按照日常小數據量存儲模式,各科各個小題各人員,存儲一張表,單表數據量(100*9*10萬)9000萬左右。
優勢:結構簡單,數據合理,方便統計。
缺點:數據量龐大,查詢速度慢。
以上,是個人三個既定思路,不知道哪一個更好一些,但願你們幫忙分析一下,更但願有大數據量數據庫設計的大俠指點一下。歡迎拍磚,但請提出您的理由或者是更好的設計思路!