首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的多用户数据库解决方案

简单的多用户数据库解决方案
EN

Stack Overflow用户
提问于 2009-12-07 03:25:27
回答 8查看 26.3K关注 0票数 8

我已经编写了一个Windows桌面应用程序,可以很好地使用Sqlite。这是一个单用户应用程序,数据库就位于运行该应用程序的机器上。

但是,应用程序已经增长,现在多个用户应该能够运行该应用程序并连接到一个共享数据库。

我希望能够在网络驱动器上共享sqlite文件,但这显然会导致数据损坏,除非有人有任何想法。

我猜我可能需要安装一个数据库服务器,但是一个商业MySQL许可证是没有意义的,PostgreSQL是非常不同的,我必须重写我的应用程序。我根本没有使用过Firebird,所以我不确定这是不是一个好的解决方案。

是否有可以安装的Sqlite数据库服务器来处理Sqlite数据库文件上的传入事务?

如果我要求客户端自行下载并安装MySQL,我是否必须拥有商业许可证?

任何建议或方向都会很好,谢谢。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-12-11 03:54:29

有一些sqlite服务器使得在多用户环境中使用sqlite成为可能。点击这里阅读:http://www.sqlite.org/cvstrac/wiki?p=SqliteNetwork。我不知道这些解决方案是如何执行和扩展的。

票数 3
EN

Stack Overflow用户

发布于 2009-12-07 03:32:41

根据底层文件系统的不同,您可能能够在共享网络驱动器上使用Sqlite文件:

http://www.sqlite.org/faq.html#q5

多个进程可以同时打开同一数据库。多个进程可以同时执行SELECT操作。但是,在任何时刻,只有一个进程可以对数据库进行更改。

SQLite使用读取器/写入器锁来控制对数据库的访问。(在Win95/98/ME下,缺少对读取器/写入器锁定的支持,将使用概率模拟。)但是要小心:如果数据库文件保存在NFS文件系统上,这种锁定机制可能无法正常工作。这是因为fcntl()文件锁定在许多NFS实现中都被打破了。如果多个进程可能同时尝试访问SQLite数据库文件,则应避免将该文件放在NFS上。在Windows上,微软的文档指出,如果您没有运行Share.exe守护程序,则在FAT文件系统下锁定可能无法工作。有很多Windows经验的人告诉我,网络文件的文件锁定是非常错误的,也是不可靠的。如果他们说的是真的,那么在两台或更多的Windows机之间共享SQLite数据库可能会导致意想不到的问题。

票数 8
EN

Stack Overflow用户

发布于 2009-12-07 04:13:49

我认为Firebird可以是一个非常好的选择

  • It's免费
  • embedded version exist
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1856313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档