|
锁定老贴子 主题:超市前台收银脱机销售数据库该选择哪个?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2006-08-07
目前在做一个连锁超市管理系统,使用 PostgreSQL + Hibernate + Tomcat + Java Web Start + Hessian + Swing 开发。
要求前台收银系统可以在服务器故障的情况下继续工作,所以需要选择一个轻量、稳定、支持Hibernate、易于通过 Java Web Start 发布、可免费用于商业产品的数据库用于脱机销售。 目前有几个数据库候选: 1)HSQLDB 2)Derby 3)Firebird 4)PostgreSQL HSQLDB、Derby 发布方便,Firebird、PostgreSQL 应该也可以通过 Java Web Start 发布,不过难度较大,而且 PostgreSQL 体积大了些。 考虑到开发进度,觉得使用 HSQLDB 和 Derby 比较容易些,但不知道他们的稳定性如何?还有没有别的选择? 敬请大家指教! 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2006-08-07
曾使用HSQLDB作为系统中心数据库发生故障时的备选本地数据库,在中心数据库恢复后,将本地数据发送给中心数据库,并清空本地HSQLDB中的数据。
HSQLDB应该是可以满足你的需求的,但是如果数据量大,需要特别注意设置HSQLDB的一些配置参数,否则往往会发生Java内存溢出的错误。 |
|
| 返回顶楼 | |
|
最后更新时间:2006-08-07
感觉HSQL比较适合,或者用BDB,BDB相当稳定。
|
|
| 返回顶楼 | |
|
最后更新时间:2006-08-07
wainwen 写道 感觉HSQL比较适合,或者用BDB,BDB相当稳定。
BDB 是指 Berkeley DB 吧,据说很稳定。不过他的 License 不够开放,如果用于商业产品是要收费的。好像不能用 Hibernate 访问? |
|
| 返回顶楼 | |
|
最后更新时间:2006-08-08
Berkeley DB是嵌入式数据库 速度快
|
|
| 返回顶楼 | |
|
最后更新时间:2006-08-08
Derby
Berkeley DB有专用的API,它不是关系数据库,hibernate用不上 |
|
| 返回顶楼 | |
|
最后更新时间:2006-08-09
C的话:
Berkeley DB开发成本太高,我们用了5个月后全部换为firebird 对性能要求极高的系统用SQlite,多线程处理比较麻烦,锁定和同步需要自己处理(不过用Java可能JDBC已经处理)但是可以支持多进程,我们用了1年多了 如果不是多进程同时存取,firebird更加方便一些 hibernate就不知道了,没用过这些嵌入式数据库 |
|
| 返回顶楼 | |
|
最后更新时间:2006-08-09
spring嘟嘟 写道 SQLite才是王道
但是 Hibernate 不支持 SQLite 呀! HSQLDB 似乎没有结构化的数据文件,而是用数据库脚本来存储数据。 因为我将 HSQLDB SHUTDOWN 之后,只剩下两个文件:一个是 *.properties 配置文件, 另一个是 *.script 纯文本脚本文件,让人无法理解! 刚才查了一下 Hibernate 源代码的 dialect 目录,又找到两个 Java 开源数据库: H2 和 Mckoi。按照 H2 主页上的测试结果, H2 比 HSQLDB 要快。不知道哪位用过,请介绍一下经验! |
|
| 返回顶楼 | |
|
最后更新时间:2006-08-10
liuwangxia 写道 HSQLDB 似乎没有结构化的数据文件,而是用数据库脚本来存储数据。 因为我将 HSQLDB SHUTDOWN 之后,只剩下两个文件:一个是 *.properties 配置文件, 另一个是 *.script 纯文本脚本文件,让人无法理解! HSQLDB可以存放任何标准数据类型,而且Hibernate支持很好,唯一的缺点是管理不方便,不过使用DbVisualizer可以弥补这个问题。 至于数据存储,按照自己的需要,可以通过修改属性配置文件,比较灵活的,帮助文档也比较简洁明了。 derby曾考虑比较过,最终选择HSQLDB主要是基于两点: 1、容易上手,文档说明比较全面 2、hibernate支持很好,如果使用纯Java环境,考虑数据库透明等,还是影响选择很重要的一项因素。 |
|
| 返回顶楼 | |
|
最后更新时间:2006-08-10
liuwangxia 写道 目前在做一个连锁超市管理系统,使用 PostgreSQL + Hibernate + Tomcat + Java Web Start + Hessian + Swing 开发。
要求前台收银系统可以在服务器故障的情况下继续工作,所以需要选择一个轻量、稳定、支持Hibernate、易于通过 Java Web Start 发布、可免费用于商业产品的数据库用于脱机销售。 对于您提到的此类分布式系统非常感兴趣,但是对于此类分布系统架构选型,有些问题,我想到的此类系统选型: 1、有多个数据库,每个分点一个本地数据库,中心一个数据库,每个点单独一套独立的系统,连接本地数据库,然后一段时间后,定期将数据发送到中心数据库,并清除本地数据库,同时将中心设置的一些信息同步到本地数据库。此种方式,每个点相对独立,任何一个点发生问题,不会影响其他点正常工作,即使中心发生问题,也不会影响分点终端正常工作。网络可以选用拨号 2、只有一个中心数据库,分点通过VPN连接中心数据库。优势是系统设计可以简单很多,而且数据维护比较简单,每个点看到的数据都是实时的。 3、第三种就是您提到的,平常使用方式2,如果出现问题,选用方式1。 曾使用过方式1的架构实现一套连锁餐饮店系统的设置,但是在系统上线使用后,发现比较明显的缺点: 1、分点数据库维护 2、分点操作终端版本同步,还要考虑版本向下兼容 3、维护成本很高,如异地、跨多个省市情况下 4、中心数据同分点数据同步比较慢(目前使用xml-rpc方式,客户端使用Delphi编写,服务器端使用Java编写,但是xml-rpc方式接口增多后,管理比较麻烦) 对于这些问题,你在系统中是怎么解决的。网络选型是怎么考虑的,使用VPN网络? |
|
| 返回顶楼 | |











