2012-03-13 17 views
0

PHPとMySQLを使用して小売業向けのWebベースのERPアプリケーションを構築しています。私は、異なるローカルデータベースと1つのサーバー(同じ構造)を持つつもりです。私がしようとしているのは、さまざまな店舗でlocalhostでこのアプリを実行することです。その日の終わりに、別の店舗の異なるローカルホストからサーバー上のデータベースを更新します。複数のローカルデータベースからサーバー上のデータベースを更新する

異なるデータベースで実行されるシーケンスクエリに基づいて、サーバー上のデータベースを更新したいと思います。

誰でもこの手伝いできますか?

ありがとうございます。

+0

リモートデータベースをスレーブとして設定することを検討してください。 –

+0

関連プロセスはETL(データウェアハウジングから)と呼ばれています。http://en.wikipedia.org/wiki/Extract,_transform,_load – Basti

答えて

0

ローカルデータベースに対するリクエストのタイムスタンプとともに、毎日のファイルにすべての挿入/更新/削除SQLリクエストを記録する必要があります。

例:

2012-03-13 09:15:00 INSERT INTO... 
2012-03-13 09:15:02 UPDATE MYTABLE SET... 
2012-03-13 09:15:02 DELETE FROM... 
... 

次に実行順序を維持し、メインデータベースに要求を実行するための新しいファイルを読むためにそれらを並べ替え、すべてのファイルをマージし、メインサーバ上で毎日あなたのログファイルを送信。

しかし、それはERPアプリケーションで何かをする好奇心が強い方法です。製品在庫情報はマージすることはできません。一般的な情報です。この種のデータには注意してください。

このプロセスで自動インクリメントを使用することはできません。これにより、一部のリクエストで重複キーが発生したり、不正なレコードに対して更新要求が発生したりします。

+0

Thanks befox。私が念頭に置いていたことは、中央データベースを提供した場合、ストアの所有者は別のローカルホストに個別にログインする必要はなく、セントラルデータベースからアクセスして、異なる店舗。しかし、あなたが指摘した問題は重複キーと製品在庫のような問題です。中央データベースを分割すると問題が解決されますか? – Sid

+0

各ストアごとに異なるデータベースを使用できる場合は、MySQLレプリケーションシステムを使用することができます。各中央ストアデータベースを最新の状態に保ちます。参照してくださいhttp://dev.mysql.com/doc/refman/5.1/en/replication-solutions.html – befox

+0

私はそのオプションを見ているだけでなく、befoxが、物事は、MySQLのサポートしていないマルチマスターのレプリケーションです。私は複数のローカルデータベースを持っている場合、それは私がサーバーにあるスレーブデータベース上のデータを複製する複数のマスターを持っていることを意味します。それは私が考えることはできません。 – Sid

1

おそらくローカルホストのサイトからメインデータベースにリンクしていますか?その日の終わりに更新する必要はなく、データベースに加えられたすべての変更は、いわば "中間者"がいないデータベースに行われます。ローカルデータベースを別々にする必要がある場合は、両方のクエリを同時に実行しますか?

注:私はERPアプリケーションの仕組みには慣れていないので、私がここにいるのであれば私を許してください。

+0

回答ありがとうDouglas。リテールERPアプリケーションには、販売トランザクションなどのリアルタイム操作も含まれます。地元の人々と同時にサーバーに質問をするとスピードが問題になるとは思わない? – Sid

+0

私はあなたのサーバーの能力、一度に行くエントリーの数、インターネット接続に依存しています。私はこの問題について専門家はいませんが、単純なテキストの更新は何も問題なく一度に何百回も実行できると思います。アップロードしたMB/GBのデータの場合、問題が発生する可能性が高くなります。個人的には、私はそれを設定し、どのくらいうまく走っているか見ていきますが、テスト/リサーチに費やす時間と時間はかかりません:) – DACrosby

関連する問題