2012-07-18 50 views
0

假設我們有一個表課程多項選擇題(MCQ)普通問題(NQ)兩個表。DB設計與跟蹤檢查類型的能力的課程,考試情景

每門課程可以有幾個MCQ和NQ。我應該跟蹤他們的數字,以顯示給學生,也可用於統計目的。

我該如何連接它們?我應該在問題和課程之間使用中間表(比如說考試標籤)來跟蹤每種考試類型,但是一個朋友告訴我使用序列(例如在Postgres中)等。

你推薦什麼?

回答

1

每個MCQ和NQ可以出現多個課程嗎?如果是這樣,你需要一個映射表來存放問題和課程的外鍵。如果任何給定的問題只能由一門課程使用,只需讓它在問題表中保存課程的外鍵即可。

我看不出在這個場景序列的適用性...

+0

課程結構應該是分層次的(MPTT要更精確)。按層次劃分,我的意思是有主題,子主題,課程等等。是的。也許一個問題屬於「生物標準水平」和「生物學更高水平」...所以通過映射表你的男人,我在我腦海中的中間表? – Soask 2012-07-18 21:30:43

+1

非常。這將是一個表格,將一門課程的主鍵映射到一個問題上。因爲許多課程可能會有相同的問題,所以不能只將courseID存儲在問題本身中。 – 2012-07-18 21:36:38

1

你會想另一個表,將持有外鍵從課程表和問題表,然後如果你是想要跟上計數,添加另一列,你可以增加。爲每種類型的測試問題提供一個關聯表。

1

Sequence只是一個單調增加數字的發生器。我不明白它是如何應用於此的(除了生成代理PK值)。

你需要的是可能與此類似:

enter image description here

注:我只涵蓋在這個模型的問題 - 存儲答案將需要更多的數據結構。

enter image description here符號表示類別(又名繼承,子分類,泛化層次等)。在物理數據庫中實現它有3 main strategies。請參閱ERwin Methods Guide中的「子類型關係」一章以獲取更多信息。

+0

+1爲「ERwin方法指南」迷你書充滿靈感 – Soask 2012-07-19 10:20:06