2014-04-28 79 views
0

我一直在開發一個相當簡單的桌面應用程序,供我的部門中的一組100-150人使用,主要用於報告。不幸的是,我必須在一些非常嚴格的範圍內構建它,類似於這個post.中所述的規範。應用程序將只是一個自包含的可執行文件,無需安裝。集中數據庫(文件)無數據庫服務器的獨立桌面應用程序?

我遇到的問題是搞清楚如何處理數據庫需求。應用程序可能只有大約1GB的數據,但它需要提供給每個人。

我會將數據庫嵌入到應用程序中(SQLite),但數據需要每週從中央進程刷新,所以我認爲維護一個數據庫會更容易,而不是將更新推送到應用程序。 Plus用戶也需要寫入數據庫,這些更新需要每個人都能看到。

我不允許爲數據庫設置服務器,因此排除了真正數據庫的任何不錯選項。我僅限於文件共享或SharePoint。

這似乎是我的MS Access或SQLite。我寧願堅持使用SQLite,因爲我是python和SQLAlchemy的粉絲 - 但基於我讀過的東西,SQLite對於多個用戶通過網絡訪問它(甚至可能)並不是一個好的解決方案。

是否有另一個選項,我沒有發現這個設置或我堅持使用MS Access?也許我需要分解並使用SharePoint列表和應用程序?

我已經研究了很長一段時間了,而且我已經用完了想法。任何幫助表示讚賞。

僅供參考,我敢肯定,你可以告訴我,我不是一個專業的開發人員。我在web/python/vb開發方面有足夠的經驗,所以我被要求做這個副項目。

+0

哦,現在有一個廣泛利用VBA的解決方案。但是,計劃的解決方案將會有太多的平面文件,使得使用VBA和Excel文件成爲一個不錯的選擇。 – walexnelson

+0

當你說你不能建立一個服務器,你的意思是專用硬件或任何特定的軟件?我得到的是,是否可以在其他人可以連接到的工作站上安裝諸如免費的SQL Server Express之類的東西?每當有人想訪問數據庫時,該工作站都會一直處於啓動狀態,但這可能不是問題。 – jmcilhinney

+0

如果不可能按照jmcihinney的建議使用sql server express,另一個選擇是在工作站中運行web/wcf服務,這將爲桌面應用程序提供一個使用本地數據庫的網關(sqlite或msaccess或其他) 。不過,我也建議使用sql server express來滿足這些需求。 –

回答

0

SQLite可以在網絡上運行並在不同的進程之間共享。當應用程序的寫入量很大時(因爲它在寫入期間鎖定了數據庫文件),這不是一個好的解決方案,但是如果應用程序主要是報告,它可能是一個完全合理的解決方案。

0

由於我的選擇有限,我決定使用SQLite爲每個應用程序構建數據庫。數據庫只需要每週或每兩週更新一次,所以我通過從平面文件中提取30秒更新就可以了。那麼用戶將根據需要將所有數據本地瀏覽。

相關問題