2012-03-29 56 views
0

在追求完美和極簡主義的過程中,我將這個問題發佈給大家,尋求是否有比我更好的替代選項。更好的選擇我的方法(Symfony 1.4模塊)

我有兩個不同模板的模塊。本質上,第一個是測驗模板,第二個是顯示測驗結果的頁面。測驗是一種形式,而結果頁面則不是。在我的競猜頁面,表單的行動基本上是「模塊/ quizResults?ID =」 $ quizId

現在的測驗行動,我做一個數據庫查詢,檢索屬於測驗的一系列問題,那麼當帖子發生時,被調用的動作就是quizResults的動作,在這裏我必須比較我的用戶的答案選項和測驗問題的正確答案選項。實質上,我必須再次查詢數據庫以檢索另一個數據庫中的測驗問題集。我覺得這是一個微小的矯枉過正,我很厭煩。

我認爲可以有更好的解決方案。我可以回到相同的測驗頁面,但是這要求模板更復雜,以及使事情變得更加混亂的動作。

任何替代品?

謝謝

+0

總而言之,您有兩個操作可以對相同的數據進行相同的查詢,並且您想查看是否可以將其減少爲一個查詢? – 2012-03-29 23:02:44

+0

是啊!!!!頁數:嘿邁克! – user1020069 2012-03-29 23:13:05

+1

哈哈你好user1020069(選擇一個用戶名,以便我們可以識別你!)。 – 2012-03-29 23:21:04

回答

0

你試圖解決這個錯誤的方式。

性能絕對沒有問題。但是,程序員的表現是一個問題。如果您必須手動製作每個查詢並傳遞所有正確的變量,則需要大量時間。你需要的是一個框架,可以讓你以更快的方式建立必要的邏輯。如果你知道如何做到這一點,你會賺很多錢,直到那時你必須像我們其他人一樣從頭開始劃傷:P

1

有幾個選項可以實現你的要求,但是你需要問問自己,增加的複雜性是否會超過次要的性能收益,特別是在查詢得到優化的情況下。

選項#1:會議

當加載從測驗行動的問題,您可以添加問題,以用戶的會話,那麼當存儲在用戶帖子的結果競猜,只提及問題在會議中。

選項#2:Memcached的

相同,但如上述,而不是存儲的問題,給用戶會話,您可以將問題存儲到內存緩存,所以當你計算,而不是把另一個數據庫查詢的結果,您可以改爲從緩存層提取問題。

0

假設提交頁面應該全部顯示正確,否則顯示不正確,我會寫一個myprojectQuestionValidator並在我的問題表單中使用它,每個問題/答案一個。然後驗證器可以檢查每個答案與數據庫中正確的答案。同意Frits,不要擔心性能 - 這是IMO過早優化。將應用分解爲概念組件,並在需要時擔心優化。