2012-10-12 124 views
1

這裏是我的表格的過程:使用Codeigniter通過多步表單「傳送」大量數據的最佳方法。

第1步:用戶上傳CSV。系統解析它並接受一些記錄,否認其他一些記錄。

第2步:用戶可以看到有多少人被接受,有多少人沒有作爲確認。用戶可以選擇只處理來自CSV的成功記錄,或一起取消處理(通過取消按鈕或僅返回主頁)。

現在,將「CSV」數據「保存」到第2步及以後(如果他們想繼續)的最佳方式是什麼?我正在考慮將所有記錄存儲到步驟1中的數據庫中,但這會導致大量不必要的數據庫活動,並可能使數據庫過大並留下記錄。我也在考慮如果他們選擇繼續第2步,那麼只需要成功的記錄就可以將服務器上的文件重新提取出來,但是我必須始終清理一堆所有文件(例如,如果他們只是在第2步關閉瀏覽器)。第三,在會話中存儲會使會話過大。

在此先感謝!

+0

出於好奇,CSV有多大? 100行? 1K? 10K? 1mil的? –

+0

CSV文件可以有數百行。我認爲幾千個也是完全可能的。 –

+0

如果是這種情況,將它們插入數據庫中進行每次上傳不會影響您的性能,並且看起來是理想的解決方案。如果您擔心存在大量遺留記錄,則可以每隔幾天運行一次cron作業,清理舊的剩餘記錄。 –

回答

1

我看到3點可能的選擇:

1 - Store it in db and look it up on every page 
2 - Store it in session 
3 - Pass it through url in query string 

我不知道你有多少數據傳遞,但如果它太大,以保持在會議,並太大通過URL傳遞,那麼db似乎是你最好的解決方案。就性能而言,撥打電話通常不會造成或破壞您的網站。

相關問題