2011-05-24 36 views
2

我有一個Django Web應用程序(可能)爲每個用戶處理數百萬條記錄。簡而言之,用戶上傳映射到數據庫字段/表的文件,數據最終被加載到5個MySQL表中的一箇中。我正在使用令人敬畏的DataTables庫來將數據顯示回給用戶。用戶的數據操作

在許多情況下,數據將被加載到應用程序中,後來發現在源文件中不正確。例如,可能會加載500K條記錄,但是在400條記錄中,名字和姓氏會被換行。用戶可以一次操作/修改記錄,但指望他們手動更改400條記錄是不合理的。

很明顯,這可以通過允許他們刪除400個違規記錄並重新加載固定的源文件來解決,但這是我的問題的根源。你如何讓用戶根據某些條件有選擇地從500K列表中刪除(或修改)400條記錄?我基本上問:「我怎麼讓我的用戶對我的數據庫執行受限制的,但是任意的SQL,而沒有出現可怕的錯誤?」

我知道我可以在Web應用程序中構建某種「SQL構建器」,但該方法似乎......錯誤。有沒有像我嚴重限制的phpMyAdmin或SQL Buddy可以暴露給我的用戶?我已經按照這些要求搜索了Django應用程序,但是我什麼也沒有提出。我想我可以爲他們提供一些關鍵字搜索/過濾,然後允許他們刪除符合標準的任何內容。

有人在那裏解決這個問題,並有一些指導?我真的很難接受最好的方法。

+0

你確定你正在解決正確的問題嗎?沒有詳細的分析,很難確定,但我的第一個想法是更好地預覽將要導入的內容以及強健的撤消是一種更好的方法。 – 2011-05-24 21:37:03

+0

公平的問題。在很多情況下,加載數據的人不是數據專家 - 只是IT人員。在加載數據之前,我已經進行了強健的檢查,但換位的名稱(等等)很難驗證。數據被分配到一個完全不同的實體進行處理/分析和邏輯一致性。這是標記不一致的第二個實體。但到那時,數據已經在系統中,需要修改。更復雜的因素是,每一行數據都標記有has_been_sent標誌,以便跟蹤哪些事情已經發生,哪些沒有發生。 – ghiotion 2011-05-24 21:42:19

+0

數據表具有搜索功能。你不能用它在你的列上進行文本搜索來過濾數據集嗎? – fosstrack 2011-05-25 06:44:34

回答

0

你是誰的用戶,你相信他們多少?

  • 如果您的信任度很低,您將需要公開某種類型的API。
  • 如果您的信任很高,請對管理命令(如「轉置名稱」)給予建議,並讓他們能夠訪問Django admin中的該表。那麼他們可以選擇批量記錄來應用此命令。