具有集中式数据库(文件)的独立桌面应用程序没有数据库服务器?

时间:2014-04-28 04:05:41

标签: python database vb.net sqlite ms-access

我一直在开发一个相当简单的桌面应用程序,供我部门内100-150人使用,主要用于报告。不幸的是,我必须在一些非常严格的限制内构建它,类似于在此post.中调用的规范。应用程序将只是一个自包含的可执行文件,无需安装。

我遇到的问题是弄清楚如何处理数据库需求。应用程序可能只有大约1GB的数据,但需要每个人都可以使用。

我会使用应用程序(SQLite)嵌入数据库,但是数据需要每周从集中式进程刷新,因此我认为维护一个数据库会更容易,而不是将更新推送到应用程序。此外,用户还需要写入数据库,每个人都需要看到这些更新。

我不允许为数据库设置服务器,因此排除了真正数据库的任何好选项。我被限制为文件共享或SharePoint。

好像我是MS Access或SQLite。我更喜欢坚持SQLite,因为我是python和SQLAlchemy的粉丝 - 但基于我所读到的SQLite对于通过网络访问它的多个用户来说不是一个好的解决方案(甚至可能)。

我还没有发现这个设置的其他选项,还是我坚持使用MS Access?也许我需要分解并使用SharePoint列表和应用程序?

我已经研究了很长一段时间了,而且我的想法已经用完了。任何帮助表示赞赏。

仅供参考,我相信你可以说,我不是一名专业开发人员。我有足够的web / python / vb开发经验,所以我被要求做这个项目。

2 个答案:

答案 0 :(得分:0)

由于我的选择有限,我决定使用SQLite为每个应用程序提供内置数据库。数据库只需要每周或每两周更新一次,所以我想通过从平面文件中提取30秒更新就行了。然后用户将在本地拥有所有数据以根据需要进行浏览。

答案 1 :(得分:0)

SQLite可以跨网络运行,并在不同进程之间共享。当应用程序占用大量时(因为它在写入期间锁定数据库文件),这不是一个好的解决方案,但如果应用程序主要是报告,那么它可能是一个非常合理的解决方案。