Php 同步。2个数据库表

Php 同步。2个数据库表,php,Php,我想用不同的模式同步位于2台不同服务器中的2个数据库表,例如: 表A字段:id、项目值 表B字段:项目id,项目 表A由一个程序使用,表B由另一个程序使用 我想创建一个同步脚本,同步两个表,使其具有相同的条目 我考虑过创建一个包含以下字段的表: A_编号(表A中的文章数量)、B_编号(表B中的文章数量) 因此,当启动脚本时,它统计表A中的条目数,并与字段A_编号进行比较。如果有更多条目,它会将它们添加到表B中,然后更新一个_编号 同样的事情在另一个方向 这是最好的方法吗?在php中,能否在两个表

我想用不同的模式同步位于2台不同服务器中的2个数据库表,例如:

表A字段:id、项目值

表B字段:项目id,项目

表A由一个程序使用,表B由另一个程序使用

我想创建一个同步脚本,同步两个表,使其具有相同的条目

我考虑过创建一个包含以下字段的表:

A_编号(表A中的文章数量)、B_编号(表B中的文章数量)

因此,当启动脚本时,它统计表A中的条目数,并与字段A_编号进行比较。如果有更多条目,它会将它们添加到表B中,然后更新一个_编号

同样的事情在另一个方向


这是最好的方法吗?在php中,能否在两个表上都添加“上次修改”的时间戳?然后,您将始终知道自上次同步以来是否修改了行。

是的,这是一个很好的解决方案,但在某些表中没有任何日期,我无法添加字段,因为我需要修改两个程序。您不必修改程序,以防添加的字段具有默认值。然后,使用这些表的其他程序将永远不会知道添加了一个新字段。我认为,在MySQL中,一种常见的方法是添加一个可为空的DATETIME字段,并使用ON INSERT和ON UPDATE触发器将DATETIME字段设置为NOW()。例如,我在表a和表B的INSERT中添加了一个触发器,将日期时间字段设置为now,然后在我的表中比较“sync”,例如与上次同步的日期进行比较。(很抱歉)但它需要在他们的数据库表中添加一个字段?我认为您理解得正确。是的,如果同步是双向的,那么必须将这些字段添加到两个数据库中的表中。但是,您最好还要确定哪个数据库具有更高的优先级,因为这两个表中的数据可能在上次同步后都发生了更改。