这个问题可大可小;)
确实和你需要处理的数据量、数据规模相关,设计系统的时候一定要考虑周全,否则会死得很惨。
如果项目的投入可以是长期的(资金充足),那就可以使用一些复杂的、自定义的数据传输和数据库表同步的方法,例如:在数据中心架设自己设计的同步服务器,处理数据库的同步,收发出入库数据、提交仓库报表等等。虽然这种方法可以优化数据传输量,并精细控制数据的传输过程,包括自定义的安全性等等。但是!如果没有这方面的设计经验(注意是“设计”不是“编码”),不要轻易尝试这种方法,你可能根本无法控制项目进度和复杂程度,模块间的协同问题就可能把项目搞垮,这还不包括项目小组的管理问题。
尽量设计的简单一些,使用数据库内建的同步(或称为replication“复制”)方法,进行表同步。例如在仓库端使用MSDE桌面版,中心使用SQL Server,然后直接通过Internet进行合并复制,在设计这样的方案时,还得考虑SQL Server在Internet上的安全性(关于安全性,略去1万字...);在设计数据库时就要考虑合并复制的那些表是否符合合并复制的要求,等等,等等。总之,分布式的离线应用,数据库的设计非常重要。
如果项目的运行环境允许,可以使用VPN来简化网络安全性。
再如果,项目的数据交换很少,可能就不用数据库同步了(感谢仁慈的主吧,他可把你从深渊里拉出来了),例如只用交换一下出入库数据和库存商品信息,还有商品的详细数据,可以建议你使用时髦的XML Web services,最大的好处就是可以不用自己编写中心的数据通讯服务器,但设计web services组件的时候一定要考虑数据的参照完整性,因为在web services的两次调用之间保持状态是一种很“麻烦”的事情,对需要数据完整性(或事务性)的数据库更改操作,尽一切可能在一次web services调用内完成,例如:出库单和出库明细数据可能保存在两个不同的表内,更新一张出库单应该是一次事务操作,把两个Recordset在一次调用里都传递过去,才可以保证事务的完整性。
如果你用vb6的话,可以使用MS SOAP Toolkit 3.0来进行客户端的web services开发,服务器如果不用.net的话,装SOAP 3.0也可以了。