我正在研究使用Rails將調查存儲到數據庫的最佳方式。我已經檢查出這個偉大的Smerf Survey Plugin for Rails存儲調查到關係型數據庫具有以下表:在CouchDB與MySQL中存儲調查
smerf_forms: name, code
smerf_forms_users: user_id, smerf_form_id, responses (as text)
smerf_responses: smerf_forms_user_id, question_code, response (as text)
在日誌中自帶Smerf一個基本的調查實例來看,有幾個數據庫調用:
Processing SmerfFormsController#create (for 127.0.0.1 at 2010-01-24 20:09:58) [POST]
Parameters: {"responses"=>{"g1q3a4s1"=>"", "g1q1a3s1a3s1"=>"", "g1q1"=>"1", "g2q1"=>{"1"=>"1"}, "g1q2"=>"2", "g1q3"=>{"1"=>"1", "2"=>"2", "3"=>"3"}, "g2q3"=>"12", "g1q4"=>["4"], "g1q5"=>["1", "3"], "g2q1a4s1"=>""}, "commit"=>"Press to Save your answers", "authenticity_token"=>"a4aDgvjzX0UK9HrQFdpdPyfALWGL22rcjRZfxDY3Ww0=", "smerf_form_id"=>"1"}
SmerfForm Load (1.0ms) SELECT * FROM "smerf_forms" WHERE ("smerf_forms"."id" = 1)
SmerfFormsUser Create (0.5ms) INSERT INTO "smerf_forms_users" ("responses", "smerf_form_id", "user_id") VALUES('--- !map:HashWithIndifferentAccess
g1q3a4s1: ""
g1q1: "1"
g1q1a3s1a3s1: ""
g1q2: "2"
g2q1: !map:HashWithIndifferentAccess
"1": "1"
g1q3: !map:HashWithIndifferentAccess
"1": "1"
"2": "2"
"3": "3"
g1q4:
- "4"
g2q3: "12"
g1q5:
- "1"
- "3"
g2q1a4s1: ""
', 1, -1)
SmerfResponse Create (0.2ms) INSERT INTO "smerf_responses" ("response", "smerf_forms_user_id", "question_code") VALUES('1', 1, 'g1q1')
SmerfResponse Create (0.1ms) INSERT INTO "smerf_responses" ("response", "smerf_forms_user_id", "question_code") VALUES('2', 1, 'g1q2')
SmerfResponse Create (0.1ms) INSERT INTO "smerf_responses" ("response", "smerf_forms_user_id", "question_code") VALUES('1', 1, 'g2q1')
SmerfResponse Create (0.1ms) INSERT INTO "smerf_responses" ("response", "smerf_forms_user_id", "question_code") VALUES('1', 1, 'g1q3')
SmerfResponse Create (0.3ms) INSERT INTO "smerf_responses" ("response", "smerf_forms_user_id", "question_code") VALUES('2', 1, 'g1q3')
SmerfResponse Create (0.1ms) INSERT INTO "smerf_responses" ("response", "smerf_forms_user_id", "question_code") VALUES('3', 1, 'g1q3')
SmerfResponse Create (0.1ms) INSERT INTO "smerf_responses" ("response", "smerf_forms_user_id", "question_code") VALUES('4', 1, 'g1q4')
SmerfResponse Create (0.1ms) INSERT INTO "smerf_responses" ("response", "smerf_forms_user_id", "question_code") VALUES('12', 1, 'g2q3')
SmerfResponse Create (0.1ms) INSERT INTO "smerf_responses" ("response", "smerf_forms_user_id", "question_code") VALUES('1', 1, 'g1q5')
SmerfResponse Create (0.1ms) INSERT INTO "smerf_responses" ("response", "smerf_forms_user_id", "question_code") VALUES('3', 1, 'g1q5')
Rendering smerf_forms/edit
Rendered smerf_forms/_smerf_form (11.0ms)
Completed in 51ms (View: 17, DB: 3) | 200 OK [ http://localhost/smerf_forms]
我的問題是,這將是替代關係數據庫更好地使用CouchDB的(一個面向文檔的數據庫)店的調查,因爲調查是比什麼都重要文件?沿着這些線是這些問題:
- 是上述輸出沒關係,應該更優化?我的意思是,人們不會不斷地填寫調查出來,所以沒有必要對他們是快如閃電,所以我想知道如果CouchDB的實際上是任何更快
- 它已經有了這個插件很好地建立,所以我應該只是使用它或者在CouchDB中使用它會是一個真正的好處。我想對這個調查數據做大量的分析(大量搜索,排序,加入......)。
感謝您的幫助。
仍在試圖繞到我的頭在何時何地使用CouchDB的:)