无需安装任何东西的多用户应用程序 - 允许并发用户写入的嵌入式数据库? [关闭]

Posted

技术标签:

【中文标题】无需安装任何东西的多用户应用程序 - 允许并发用户写入的嵌入式数据库? [关闭]【英文标题】:Multi-user application without need to install anything - embedded database that allows concurrent user writes? [closed] 【发布时间】:2013-11-26 23:11:40 【问题描述】:

我需要创建一个应用程序,

    被多个用户同时使用 不需要任何安装 有一个集中的数据存储 数据必须存储在内部公司网络 我无权访问公司的内部数据库服务器或网络服务器

这些限制不是我自己的 - 这些来自我的客户 - 这是一家全球公司的分支机构,在全球公司层面有一些重大的 IT 政策限制,他们可以不会影响他们的水平(类似的东西),但他们仍然需要一个软件。

我的目的是找到如何为他们提供一个工作软件,尽管有这些限制。

因此,唯一的选择(据我所知)是将数据存储在网络共享上 - 在一个或多个文件中。问题是找到一种方法来提供对这些文件的并发写访问。

目前的研究

首先我想到的是使用 SQL Server Compact 并将其放在网络共享上

SQL Server Compact allows only one connection when located on a network share

然后我发现了 SQLite - 做了一些研究,发现它比 SQL CE 有一些改进

SQLite database file locked when writing, but possible concurrent reading operations

然后我找到了 VistaDB,它似乎提供了我需要的功能,但它非常昂贵 - 每个开发人员需要 1295 美元...

VistaDB embedded database provides row and table level locking!

这么精致的问题是

哪些嵌入式数据库支持并发用户写访问? (在这方面,VistaDB 有替代品吗?) - 请提供事实,而不是意见。

【问题讨论】:

我建议您找到一种可行的技术(例如 sql server express)并努力消除可笑的限制。 @Dan-o 不幸的是,在这种情况下我无法消除这些限制,但我发现 sql server compact 可以工作,唯一的事情是我必须制作断开连接的应用程序,但这可能为大约 5-10 个用户工作,但在这种情况下最多有 50 个用户。唯一可行的方法是将这个数据库在逻辑上和物理上拆分为多个文件,这样每个文件就只有几个并发用户。 @Dan-o 想悬赏一下我的问题,但是...碰巧我的声誉还差 4...该死的 :((( 构建一个网络应用,而不是桌面应用。 @DourHighArch 谢谢,但看起来我忘了提到数据必须在公司网络内,并且不能将其放在网络服务器上 - 网络应用程序不是一个选项。但事实证明我找到了一个解决方案:) 几个小时后会发布它 【参考方案1】:

1)唯一支持并发编辑的嵌入式数据库是VistaDB(至少我没有成功找到任何其他选项)

VistaDB official site -> take a look at Pros/Cons section! - (..) 嵌入式数据库通常会在每次插入操作时锁定整个数据库,我们不会。我们提供表级和行级锁定。

VistaDB 的优点 - 它支持实体框架代码优先!

关于价格 - micoISV 有折扣(一年 450 美元 + 125 美元升级)

2) 如果您知道并发写入数据库的情况非常少 - 那么您可以选择 SQLite,它是一个免费的嵌入式数据库 - 因为 SQLite 允许并发读取,但写入数据库时​​只有一个连接。未找到任何有关 EF 支持的信息。

3) 如果您只有很少的用户,那么 SQL Server Compact 可能是最佳选择 - 它支持实体框架。

【讨论】:

以上是关于无需安装任何东西的多用户应用程序 - 允许并发用户写入的嵌入式数据库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 phpmyadmin (XAMPP) 中禁用 mysql 保护允许访问而无需任何身份验证吗?

如何通过发送图像远程安装 android 应用程序? [关闭]

设计无需密码的身份验证,仅使用用户名

IIS / .Net 仅允许对给定用户会话的单个并发响应

OAuth2 - 无需用户交互即可授权

Laravel AUTH() - 添加其他用户(无需注册)