2011-04-26 54 views
0

我必須設計模型來存儲包含多個部分的報告。每個部分都包含一組問題和答案以及一些數據表。用於存儲包含許多問題和答案類型數據的報告的數據模型

我已經採取了一些設計決策,想驗證我是否在正確的軌道上:

  1. 我還沒有存儲在數據模型部分的任何引用。這是好還是應該存儲在數據庫中的文檔節的引用?我想到了在應用程序級別處理這個問題。
  2. 我已經創建了每個問題作爲一個專欄,而不是設計一個通用的問題和答案模型。事實上,我創建了一個通用的問題和答案模型 - 但決定不使用它,因爲要求大部分是已知的,並且會有一些微小的變化。問題文本可以由應用程序層處理,只有答案存儲在數據庫中 - 我需要一些意見,看看我在這裏所做的是否是一種好的做法。
  3. 爲屬性/問題的每個邏輯分組創建實體是一個好主意嗎?我遵循的原則是創建一個用於重複屬性組的實體。對於不重複的屬性,我直接在整個報表實體下創建所有這些屬性,並導致該實體中有很多屬性。我不確定從數據庫設計的角度來看它是好事還是壞事。如果我必須創建實體來存儲相關的一組屬性,那麼我可以將FK添加到該實體,並且在模型上看起來更加優雅,但是存在一個聯合 - 這種方法在這裏更好,我如何決定一個與另一個?
+0

我可能不會將每個問題/答案存儲爲一列。你很難增加/減少問題,併爲未答覆/未提問題存儲空數據。 – Matthew 2011-04-26 16:22:37

+0

同意馬修PK。將每個Q/A存儲爲列只會導致人口稀少的表格,並會冒着讓記錄太大而無法高效訪問的風險。根據您的答案被允許的時間長短,您可以快速達到實際限制。 – 2011-04-27 01:08:21

+0

@Matthew,@Joel - 感謝您的評論。在進一步思考這個問題時,我也得出了你們都提出的相同結論。你對我的第三點有什麼想法嗎? – 2011-04-27 06:47:04

回答

0

這是我所做的。

我設計了一個通用的問題&答案模型可以支持任何數量的問題及其在任何報告中的任意組合。