2013-02-28 89 views
2

自從我在學校開始以來,我一直在使用這個網站作爲一個很好的資源 - 但我從來沒有遇到過這個具體問題,我希望得到一些幫助。在研究數據庫結構時,我從來都不是最好的,而且我的任務是創建一個具有一些特定規格的PHP/MySQL測試引擎。數據庫設計/ ERD - 測驗引擎

所以,你可以更好地瞭解我打算在這裏 - 我想考慮到以下幾點:需要

  • 管理員和學生登錄,並提供不同的訪問級別。
  • 管理員應該能夠構建一個或多個測試並將其分配給一個或多個學生。
  • 對於管理員在測試中構建的每個問題,管理員應該能夠分配點值。
  • 測試應該能夠提出一個或多個問題。
  • 你的應用程序應該支持三種基本的問題類型:真/假,多選和填空。
  • 最終結果將顯示總分,以及學生對每個問題的回答。
  • 學生應該只能看到他們有權訪問的測試的最終結果。
  • 管理員應該看到來自多個學生的測試結果。
  • 學生不允許不重新參加相同的考試。

大多數情況下,我試圖處理基本結構。我有五個表在一開始,我凝聚了問題/答案部分爲一個表 - 在這裏周圍的關係,切換原諒我那可憐的嘗試,因爲我有他們20種不同的方式感覺:

我在正確的軌道上嗎?有什麼建議麼?

+0

而不是張貼鏈接到圖像,最好是你的信息在這裏發佈在StackOverflow上。由於您沒有足夠的聲望,您將無法發佈圖片 - 只需發佈列出您的表格和每個表格中的列的文字即可。 – 2013-02-28 17:59:04

+0

也停止使用前綴'tbl',這是完全必要的。冗餘和雜亂的閱讀ERD。 – PositiveGuy 2016-10-11 20:55:29

回答

1

在N-1中使用數據庫設計的經驗法則。對於所有有關係的表,你應該有N-1個關係(其中N是表的個數)。帶有循環引用的表格是否定的。把作爲安全部件,只是看着測試/ questsion /答案,你想,有一些基本的對象設計:

  1. 管理員(或教師)表
  2. 測試表
  3. 學生表
  4. 問題表

你沒有在你的問題中提及它,但是如果你想讓每個測試都與老師教授的課程相關聯,那麼你也需要這樣做。用這四個或五個桌子,你應該能夠建立你們的關係。提示:這些關係中的大多數是多對多關係,因此需要一個XRef表來解決這個問題。回覆你對此的看法,我們可以看看下一步是什麼。