我有大約30 MB的文本數據,這些數據是我在Web應用程序中使用的算法的核心。在Web應用程序中處理源文件數據文件的最佳方式是什麼?
一方面,數據是算法的一部分,對數據的更改可能導致整個算法失敗。這就是爲什麼我將數據保存在源代碼管理中的文本文件中,並且所有更改都經過了自動測試(預先提交)。我目前的控制水平很高。隨着我們產生更多網絡實例,將數據與源一起分發不成問題,因爲它與源代碼一起標記。我現在有這些問題:
- 我經常制定特殊的工具來操作文件,複製數據庫訪問工具功能
- 我想給非開發控制網絡訪問這些數據。
另一方面,它是數據,它在數據庫中「屬於」。我希望我可以把它放在一個數據庫,但然後我會遇到這些問題:
- 如何將此數據庫同步到源?發行版包含代碼和數據。
- 當我產生Web服務器的新實例時,我該如何隨數據一起提供它?
- 如何管理數據的提交前測試?
事情我已經考慮過這樣遠:
- sqlite的(沒有解決非開發者訪問)
- 建立一個精心製作的預產數據庫,數據用戶將編輯創建「補丁」到「真正的」數據庫,開發人員將接受,測試和提交。聽起來很複雜。
我還沒有完全設計好這又和我真的希望我在這裏重新發明輪子而一些用戶會告訴我的我的方式錯誤...
BTW:我有一個「正規」數據庫以及不是算法數據的東西。
BTW2:我添加了Python標籤,因爲我目前使用Python,Django,Apache和Nginx,Linux(以及一些蹩腳的開發人員使用Windows)。
在此先感謝!
UPDATE
數據的一些例子(算法是自然語言處理的東西):
- 世界城市和他們的備用名稱貨幣
- 酒店座標的
- 名稱
這個名單還在繼續,但想象一下,如果有人改變教導我說羅馬在意大利的座標,或者如果某人爲拉斯維加斯添加了「浪漫」作爲替代名稱,那麼試圖解析這個句子Romantic hotel for 2 in Rome arriving in Italy next monday
(是的,例子是跛腳,但我希望你得到漂移)。
哦,我猜我沒有正確解釋。抱歉。這個算法數據是真正的數據(不是代碼)。我會在問題主體中添加一些例子。 – 2011-03-06 12:22:22
@Tal Weiss:改變事情。重寫我的答案。 – 2011-03-06 12:47:29