由於問卷總是可以改變,而問題本身可能會很長,所以使用問題作爲列名似乎很愚蠢。 在數據庫中存儲調查問卷是否有任何慣例或經過驗證的方法?在數據庫中存儲調查問卷的有效方法是什麼?
我正在考慮有一個表(問題ID,問題),然後第二個表的問題ID和答案。但是這個解決方案可能太慢,因此需要第三次加入才能將問題與特定用戶聯繫起來。
由於問卷總是可以改變,而問題本身可能會很長,所以使用問題作爲列名似乎很愚蠢。 在數據庫中存儲調查問卷是否有任何慣例或經過驗證的方法?在數據庫中存儲調查問卷的有效方法是什麼?
我正在考慮有一個表(問題ID,問題),然後第二個表的問題ID和答案。但是這個解決方案可能太慢,因此需要第三次加入才能將問題與特定用戶聯繫起來。
連接有什麼問題?這就是關係數據庫的一個關鍵點。
將問題存儲在一張表中。
將問題答案存儲在另一個表中。
如果答案是預定義的,並且在多個問題中是常見的,那麼將常見答案存儲在其自己的表中,並創建另一個具有AnswerID的QuestionID表。
不要害怕連接,它們是關係數據庫的一部分。沒有連接,你只需要處理平面文件。
我認爲最好的答案是模擬問卷所涉及的信息。不要嘗試對問卷本身進行建模 - 問卷只是用於收集數據庫內容的手段。
我認爲最好有一個單獨的類/文件代表使用散列表的問卷。然後其他類可以利用它。我真的不需要將問題存儲在db中,因爲他們仍然會加載到散列映射中。
我已經晚了一點與我的答案,但也許有人會發現這個信息有用。
我完全同意JonH。我將舉一個例子說明我如何實現它,以便更清楚地制定通用解決方案。
最常見的表是:
此外,您可以希望創建特殊的表選配答案(例如收音機,複選框等)或活動跟蹤表,具體取決於您的應用需求。
下面是它可以是有益的(建議從閱讀從上到下順序)鏈接:
的確如此。但爲什麼現在每個人都在尖叫連接? – TheOne 2011-01-07 14:45:34