2012-02-09 8 views
0

Iは、例えば、異なるスキーマを持つ2台の貴様サーバに位置する2つのデータベース・テーブルを同期する:同期。 2つのデータベーステーブル適切

表Aフィールド:ID、article_value

表Bフィールド:のarticle_id、物品

テーブルAは1つのプログラムで使用され、テーブルBは他のプログラムによって使用されます。

両方のテーブルを同じエントリに同期させる同期スクリプトを作成したいとします。

A_NUMBER(表A内の物品の数)、B_number(表Bにおける物品の数):

Iフィールドを含む1つのテーブルの作成について考えています。

スクリプトが起動されると、テーブルAのエントリ数がカウントされ、フィールドA_numberと比較されます。エントリがさらにある場合は、テーブルBに追加してからA_numberを更新します。

他の方向でも同じです。

これを行う最善の方法ですか? PHPの

答えて

0

両方のテーブルに「最後に変更された」タイムスタンプを追加できますか?最後の同期以降に行が変更されたかどうかは、常にわかります。

+0

はい、良い解決策ですが、いくつかのテーブルでは日付がありません。両方のプログラムを変更する必要があるため、フィールドを追加できません。 – adieuuu

+0

追加するフィールドにデフォルト値がある場合は、プログラムを変更する必要はありません。テーブルを使っている別のプログラムは、新しいフィールドが追加されたことを決して知らないでしょう。 MySQLでは、一般的な方法として、NULL可能なDATETIMEフィールドを追加し、DATETIMEフィールドをNOW()に設定するON INSERTおよびON UPDATEトリガーを使用することが考えられます。 –

+0

ああ私は理解している。たとえば、テーブルAとテーブルBにトリガON INSERTを追加して、日付時刻フィールドを現在の時刻に設定し、次にテーブル「同期」と最後の同期の日付を比較します。 (私は生徒です) データベーステーブルにフィールドを追加する必要がありますか? – adieuuu

関連する問題