2011-06-30 35 views
-2

我正在爲調查Web應用程序設計數據庫。這項調查應該每年進行一次,人們可以從下拉菜單中選擇一年來調查過去幾年。如何在數據庫中存儲調查年份

數據庫結構是這樣的

大學表 - >學院(子表) - >場(子表)

我需要發出類似「找不到的課程,爲特定的調查年度」查詢。

我是否需要將調查年限存儲在所有數據庫表(50+表)中,儘管看起來很直觀,但我覺得這不是一個正確的設計(因爲數據重複)。請分享你的想法。

感謝

+0

你可以包含表結構嗎?調查數據存儲在哪裏? – StevieG

+0

表格包含有關大學,學院(擁有大學的外國關鍵),課程(擁有大學的外國關鍵)的信息。數據存儲在Postgres數據庫中。 – Sunny

+0

我很抱歉,但你的問題真的不清楚。表格是什麼樣的?有調查表嗎?調查與大學/學院/課程等有什麼關係等。 – StevieG

回答

0

去閱讀這篇文章: http://en.wikipedia.org/wiki/Database_normalization。你應該瞄準的正常形式是第三範式(3NF)。這將消除重複的數據。你應該能夠從所有「孩子」表中排除調查年份。但是,如果調查年份是父表上主鍵的一部分,則無法從子表中刪除該字段。而是使用一個int字段作爲主鍵,而不是使用其中包含調查年份的複合主鍵。

+0

感謝您的回覆,我瞭解正常化和年份不是主鍵的一部分。理論上,我可以在父表上存儲年份,並使用連接查詢從年度表中獲取子表的結果。但是,我有使用連接表的多級子級別,使用多個連接發出查詢將變得非常困難。我試圖找到一些解決方案,將調查年份與子表聯繫起來。 – Sunny

+0

也許那麼每年只有一個單獨的數據庫? –

+0

是的,但用戶可以填寫過去幾年的表格。我不知道如何根據應用程序邏輯維護單獨的數據庫。謝謝你的幫助。 – Sunny

相關問題