我在MySQL中有一个数据库,在MS SQL上运行另一个数据库。 MySQL是我在Joomla上运行的网站的后端数据库。 我有一个运行我的商店的ERP。该ERP由.Net中的第三方制作
只要用户在我的网站下订单,就会更新名为the orders
的表格。
订单详细信息必须刷新到我的ERP中的orders
表。
两个数据库中的表结构完全不同,所以我将自己进行映射。
我的问题是:
答案 0 :(得分:1)
1:取决于您的数据更改频率,以及您需要同步的频率(即,取决于您的业务)。
2& 3:传输数据的Web服务可以正常工作。但除非你想要提出一个通用的解决方案,否则这听起来比它值得多麻烦。
如果我这样做,我会将数据从Sql Server导出到文件,然后将该文件导入mysql(mysql my_db < file.sql
)。
以这种格式获取sql server的数据并不容易(在Sql Server上没有等同于mysqldump
)。但请查看this question了解一些想法。
如果数据本身在系统之间是兼容的(如果列是等效的数据类型),则只需在SQL Server中创建一个以正确顺序导出数据的查询,就可以克服表结构差异。
实际上,您可以创建一个查询,其输出是 file.sql以导入到mysql中。例如,查询如:
SELECT CONCAT(
'INSERT INTO MYTABLE VALUES (',
myColumn,
',',
myOtherColumn,
');'
) AS SQL_STATEMENT
生成输出类似于:
INSERT INTO MYTABLE VALUES (myColumnValue1, myOtherColumnValue1);
INSERT INTO MYTABLE VALUES (myColumnValue2, myOtherColumnValue2);
....
我至少有一次从sql server导出数据。
答案 1 :(得分:0)
答案 2 :(得分:0)
决定转移订单的频率是业务决策而非技术决策。但是很难看出你不能尽快处理客户的订单会带来什么样的竞争优势,所以它应该是一个没脑子的人。
在不了解您的基础架构和架构的情况下,我们无法向您提供有关方法的明确建议。我希望一个写得很好的ERP软件包包含用于导入和导出信息的接口。唉,这种期望往往是混乱的。如果确实需要编写自己的界面,请避免使用Web服务。除非你有一个非常特殊的设置,否则所有WS都意味着需要更长的时间来满足你的客户。我想我们已经同意这不是一个好主意。
Syncronization API的注意事项:
答案 3 :(得分:0)
好的,根据我收到的回复,我会重新提出我的问题,提供更多细节。
我有一个在Joomla和Virtue mart上运行的电子商务门户网站(不管它们是什么!!) 这里的后端数据库是MySQL。 我的朋友用.net编写了一个erp,而那里使用的Db是MSSQL 现在我将主持我的电子商务门户网站。
以下是将要发生的行动以及与行动相关的问题
行动1: 在一天开始时,我的朋友更新各种产品和erp表的库存 题: 我希望erp(MS SQL)中的更新库存能够自动反映在我的网站数据库(MySQL)上。我该怎么做?
行动2: 人们来到我的网站并下订单。这些订单存储在我的网站(MYSQL)的订单表中。 问题2: 我希望我的网站(MySQL)中的这些更新订单相关数据在我的erp(MS SQL)中的相应表上更新
更多关于我的erp和我的网站中表格的数据库结构是完全不同的