<分区>
我正处于为我的公司规划和设计自定义会计应用程序的早期阶段。我的目标是将开源关系数据库用于数据存储部分,我知道有两个得到广泛支持的可靠数据库:MySQL 和 PostgreSQL。
对于需要事务、存储过程、函数和安全性的系统,对于这两个数据库中的哪一个最适合会计应用程序,是否有任何意见,或者是否还有另一个数据库是我遗漏的?
我更熟悉 MySQL 和 MS SQLServer 2005,但由于许可证成本,我正在尝试放弃后者。
让我补充一下:这不是像 Quickbooks 或 Peachtree 这样的会计需求。这基本上是一个处理我们提供的特定业务服务的会计系统。可能有两三个系统可以满足这种需求,在进行任何定制之前的价格在六位数范围内,并且需要我的小公司长期与供应商联姻。因此,我们正在内部构建应用程序。
此外,虽然我很欣赏购买与构建 的争论,但我想摆脱那个特定的宗教问题,因为购买之路已经被采用,供应商惨遭失败。有时您只需要自己完成这项工作,而这个特定的项目和预算保证了这一点。
感谢大家到目前为止的回复。
有四种主要的开源关系数据库管理系统可能适合此类应用程序:Postgresql、MySQL、Firebird 和 Ingres。还有其他系统,例如SQLite,但它们没有这种类型的架构,也不是真正为这种类型的工作负载而设计的。这种类型的其他一些开源数据库管理系统确实存在,但由于某些原因(例如缺乏明显的供应商 promise )似乎不太可行。具有此类问题的系统示例是 SAP-DB.
Postgresql具有所有开源数据库中最好的功能集,并支持 XA 事务,如果您的应用程序是三层系统并支持非常复杂的事务,您可能会需要它。特别是如果您想执行跨越多个数据库调用的事务,您将需要这样做。
多年来已经构建了 PostgreSQL 的多个商业变体,例如 Illustra, Greenplum和 EnterpriseDB. Illustra 是 PostgreSQL 的商业版本,随后被 Informix 收购。 Greenplum 是为数据仓库应用程序设计的修改版本。 EnterpriseDB 是一家提供受支持的 PostgreSQL 商业版本和一些增值软件的公司。
MySQL 5.x 有一个功能集,支持合理的功能横截面,但它不像 PostgreSQL 那样功能丰富。它有更广泛的主流接受度,并且是最容易招募熟练开发人员的开源数据库管理系统。尽管旧版本没有强大的事务支持,事务存储引擎如 InnoDB已经有一段时间了。 current politics surrounding Sun 的收购产生了 code forks和 MySQL 景观是 somewhat messy,关于 quality issues in the 5.1 release. 的争议然而,MySQL 是迄今为止最受欢迎和最著名的开源数据库管理系统,也是唯一在开源圈子之外具有显着品牌知名度的系统。
Firebird是 Interbase 的开源版本。最后我看了看,它没有 XA 支持,但如果您的应用程序设置为两层客户端-服务器系统,那就没问题了。 更新: 我找不到关于此的明确规范,但文档确实表明它支持两阶段提交,但我能找到的并没有具体说明它是否支持 XA 协议(protocol).该文档暗示 JDBC 驱动程序确实支持两阶段提交。
这个系统的一个有趣的变体是 Fyracle ,旨在提供与 Oracle 的一定程度的兼容性。这最初是作为 Compiere 的后端开发的。 ,它是针对 Oracle 构建的,并且与其紧密耦合。
Ingres现在可以通过开源许可证获得,但受到开源社区集体哈欠的欢迎。然而,它功能丰富且非常成熟——我认识一些人在 1990 年开发 INGRES 应用程序,它可以追溯到 1980 年代。