SqlServer數據庫設計,糾結的問題,有膽你就來!


最近,小菜遇到了數據庫設計上的一個問題,希望各位大俠再次,直抒己見,幫忙分析一下。也可有更好的設計,請直接提出來。

要求:數據庫(SQL Server 2005)存儲每個學生,單個客觀題答案、分數,主觀題單個分數。

問題:設計網上閱卷數據庫,其中數據庫掃描數據存儲設計,遇到問題。問題難點在於數據量龐大,中型聯考,預計考試人數10萬人左右,每人預計考試9科目(未分文理之前),略估計每科考試主觀與客觀總共100道題左右,10*9*100估計源數據在5000萬~9000萬左右,如多次考試的話,數據量將會翻倍增長,如何在數據庫中存儲這龐大的數據,給我帶來的非常頭問題的問題。

我的思路:

1. 每次考試每次科目學生作答內容存儲為單個表,每個小題為此表的一列,這樣一張表的行數為10萬(以10萬人聯考做參考),但是動態創建的列數為120+列(以每科120個題做參考),則每次考試要創建9張此類。

優點:每次考試不必過多創建表(9張/次),且單表數據少(10萬級左右)

缺點:單表列數不固定,且單表列數120列左右(沒用過這么多列不知道,性能如何),列數太多且不易統計。

2. 每次考試各個科目各個小題存儲為單個表,即要創建9(以9科目作參考)*100(單科100題做參考)=900張/每次,里面存儲此科目此小題下所有參加考試人員的答題記錄,10萬/張表。

優點:每次考試單表結構簡單,單表數據少(10萬級左右),列數固定且列數簡單

缺點:每次考試新建900(以9科目900小題做參考)表,數據庫壓力大。

3. 按照平常小數據量存儲模式,各科各個小題各人員,存儲一張表,單表數據量(100*9*10萬)9000萬左右。

優點:結構簡單,數據合理,方便統計。

缺點:數據量龐大,查詢速度慢。

以上,是我的三個既定思路,不知道哪個更好一些,希望大家幫忙分析一下,更希望有大數據量數據庫設計的大俠指點一下。歡迎拍磚,但請提出您的理由或者是更好的設計思路!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM