我在一家公司工作,我需要非常快速地创建一个程序。我的程序将与 100 个用户一起运行,他们每天将进行大约 100 笔交易。由于我面临时间压力和其他各种限制,因此无法在服务器上建立一个合适的数据库。因此,我正在寻找具有某种事务支持而不在服务器上运行的替代方案。我相信这可以使用 Microsoft Access 解决,这是一个不错的解决方案,但我相信我会遇到锁定问题。是不是一旦一个用户尝试读取整个表就会被锁定?无论如何...我的问题是还有什么其他选择。
7 回答
真正的答案可能会因这里讨论的数据量而有很大差异。
我会看看SQLite。它支持事务、触发器等,并受到NHibernate 之类的支持,这可能会使您的数据库映射生活更加轻松。
sqlite 是一个合适的解决方案吗?不过,不确定如何支持远程存储。这不是一个共同的特点。
查看SQLite。
您可以查看SQL CE,它是 Microsoft 的一个非常好的本地数据库。
有很多选择。正如其他人所说,使用 SQLLite、SQL Server Express 或许多其他小型、轻量级和免费数据库中的任何一个进行设置和运行。
假设你今天需要这个,我会选择你最了解的那个。此外,我会远离任何类似 Access 的东西。如果您还没有将它用于多用户访问的经验,那么您将花费太多时间来解决问题。
也就是说,我首先倾向于 SQL Server express。它是免费的,无需更改代码即可扩展到完整的 sql server。
我相信这可以使用 Microsoft Access 解决,这是一个不错的解决方案,但我相信我会遇到锁定问题。
我会说锁定和排队将是您最不担心的事情。如果有 100 个并发用户,Access 可能会在几分钟内自行损坏。每天有 10k+ 条记录,它可能会在一个月左右的时间内使您的整个网络陷入瘫痪。
由于我面临时间压力和其他各种限制,因此无法在服务器上建立一个合适的数据库。
您可以在一个小时内启动数据库服务器。比您花在 Access 上的时间要少得多。有开源虚拟机映像、MSSQL Express、托管解决方案等。时间和成本应该不是问题。
我能想到的唯一能让您使用 Access 的就是表单支持(可以连接到 MSSQL Server)或 DBA 维护。不过,坦率地说,在 100 个用户时,Access 将承担如此多的保姆,以至于您可以负担得起托管 SQL 实例并且仍然领先。
我认为Firebird可以是一个很好的选择。Firebird 是嵌入式的,也可以与服务器一起使用。它有很多特点。