我設計一個Rails應用程序記錄的研究數據。它大部分可以是概念化爲作爲「調查」(或「調查問卷」)數據。
我們已經有幾個Access數據庫和CSV文件來存放這些數據。現有的設計是每個調查都有自己的表,每個問題有一列。這些表中的很多都有100 +列。
我剛剛收到了所有調查總共有多少列的報告。計數是18,683。是的,18,683列 - lot超過我的預期。 (我認爲總共有一些列比列還多,有些表可能會退化,但我知道有幾個非常重要。)
爲了減少問題的複雜性,我一直在想我會讓某些型號像:
- 調查
- 問題
- 響應
這一戰略將減少數Ò從數千到數十列的f欄。但是,我不知道如何通過Rails的做法,因爲:
- 我們需要幾個調查美景(比autogenerating更好的形式)。
- 我們需要驗證(有些調查很簡單,但其他調查很複雜)。
- 我們需要將數據鏈接到其他記錄並且報告它。我的老闆會預期每個調查的結果爲,調整爲(例如每個問題一列),以便他們可以分析它。有沒有一個優雅的解決方案呢?
- 存儲響應似乎比寬表(除非有一個好的策略「多態列」)。
- ...和其他我可能想要將每個調查視爲ActiveRecord模型的情況。
問題
我如何可以簡化這個 「問題1,問題2,...,question143」 怪物?雖然我確定沒有完美的解決方案,但最好的選擇是什麼?
我會對備選數據庫感興趣,如果他們會讓事情變得更容易。我對文檔數據庫(如mongodb或couchdb)不是很熟悉,但從我所知道的情況來看,它們可能會有所幫助。
這裏登陸的目的是希望進行相同類型的轉換,並好奇一年後你決定做什麼。 – wesgarrison 2011-08-09 18:29:53
對於那個項目,我只是忍受所有的專欄。如果我今天要重新開始,我想我會做CouchDB或類似的東西。主要問題仍然存在,但這不是一個可怕的問題。 – 2011-08-10 00:29:18