2014-11-24 30 views
0

我正在尋找關於重新編寫我開發的簡單文檔控制應用程序的最佳方法的開放式建議,它實際上只是一個自定義文件日誌生成器,查找並記錄具有特定命名格式和文件位置的文件。例如,我們用格式「CO#3 brief description.docx」來命名我們所有的變更單。當它們被髮布時,它們被移動到另一個具有項目名稱的文件夾下的「已發佈」文件夾。所以,通過記錄文件並查詢它的路徑,我們可以知道它關聯了哪個項目以及它是否已經發布。需要關於使用Python和MySQL編寫文檔控制軟件的建議

我用Python 3.3寫了它。運行良好,但代碼難以支持,因爲我在構建報告的同時漫步文件結構,這會變得非常混亂。我認爲最好先建立大部分/所有文件的數據庫,然後用SQL查詢數據庫來構建報告。

對不起開放式問題,但我希望不要重新發明輪子。任何人有任何建議去走這條路?例如,我應該查看的現有應用程序或捆綁軟件可能有所幫助?我有很多C/C++編碼經驗,但對Python和MySQL仍然很陌生。任何建議將不勝感激。

+0

我仍然在尋找建立我上面描述的簡單的文檔控制應用程序的建議。實際上,我想爲具有特定命名格式和位置的文件創建自定義日誌。 – buttonsrtoys 2015-05-07 15:21:51

+0

Yikes,您選擇.docx作爲文檔類型? ':-)' – halfer 2015-05-07 16:10:49

+1

不是我的選擇。我們的行業(架構/構造)主要使用MS文件和PDF文件進行文本文檔。 – buttonsrtoys 2015-05-08 16:34:51

回答

1

@GCord非常好的答案。我想補充剛纔兩位:

  • 如果它是一個相對較小的數據庫,可以考慮sqlite3的,而不是 的MySQL(這是很好的支持開箱即用,多平臺的,沒有 依賴於運行RDBMS)
  • 如果預計會增長,並且/或者您只想使用某種新技術,請嘗試爲真實文檔管理系統(例如,http://www.alfresco.com/)編寫自動化的 攝取腳本。我倒是建議 Apache Solr實現(基於Apache Lucene的),作爲一個完整的文本 索引服務,然後你可以使用Apache提卡自動 提取文本和元數據從文件(見 http://wiki.apache.org/solr/ExtractingRequestHandler
+0

檢出了sqlite3,它看起來非常適合我的應用程序。謝謝!也感謝Apache的建議。不幸的是,我沒有時間去投資新技術,所以它是sqlite。 – buttonsrtoys 2015-05-08 16:40:43

+0

@buttonsrtoys:SQLite是一個非常好的解決方案。請注意,它支持外鍵,但每次連接時必須明確地打開它們 - 查找「PRAGMA」。 – halfer 2015-05-11 22:42:30

1

首先,如果它的效果很好,那麼爲什麼要修復它?

其次,這樣做對你的代碼進行任何更改之前,我都會問自己以下幾個問題:

  1. 哪些改進/新要求,我想要實現我不能輕易與目前的結構呢?
  2. 我有當前解決方案的測試套件,以便我可以對任何重構進行迴歸測試嗎?在重新實施某些事情時,很容易忽略一些沒有很好記錄但是您/用戶依賴的特定行爲。
  3. 這些改進是否保證SQL數據庫?例如:
    • 您是否需要經常從SQL數據庫運行報表而不必走目錄結構?
    • 步行目錄有問題嗎?
    • 您有網絡或性能問題嗎?
    • 您是否面臨使用量的增加?
  4. 實施SQL解決方案時,您需要一個新任務來更新SQL數據。如果我理解正確,報告當前即時生成,因此始終是最新的。 SQL報告不會出現這種情況,所以您需要確保它們是最新的。您將更新SQL數據庫的頻率如何:
    • a)實時?這將需要一個後臺服務。這可能是一個操作上的麻煩。
    • b)按需?那麼與目前的解決方案有什麼不同?
    • c)在預定時間?然後,您的數據可能在更新之間不是最新的。

我沒有任何包裝或技術方法推薦給你,我只是想我給你的那些通用軟件管理的建議。在任何情況下,我也擁有豐富的C++和Python和SQL經驗,並且我會堅持使用Python。

在SQL方面,爲什麼堅持傳統的SQL引擎?爲什麼不是MongoDB,這將非常適合存儲結構化數據,如文件信息。

+0

感謝您的想法。關於您的意見: 1.如上所述,代碼很難支持,例如添加新功能並在某些地方遵循邏輯,部分原因是因爲嵌套深度較深。 2.是的,我有一個測試套件用於迴歸測試。 3.在SQL中不強大,所以不確定是否有擔保。我目前的軟件是單程。多遍方法可能更易於實現,並且更加靈活,這就是我研究SQL的原因。 4.按需定時充足。不知道MongeDB。將檢查出來。 – buttonsrtoys 2015-05-08 13:00:08