1

私は、一緒に仕事をしている会社のウェブサイトを構築する計画段階にあります。この会社は電子機器の卸売業者であり、より良い Web プレゼンスを得たいと考えています。同社の現在の POS システムは、PervasiveSQL をデータベースとして使用しています。Web サイトの DB には MySQL を使用し、言語には PHP を使用します。

ただし、この Web サイトをこの現在のデータベースと統合したいと考えています。侵入が発生した場合に備えて、Web サイトに独自のデータベースを使用させたいのですが、すべてが危険にさらされることはありません。ウェブサイトが注文を受け付けたら、それを POS システムにも複製したいと考えています。

これを達成するにはどうすればよいですか?コードに 2 つ目の INSERT ステートメントを記述して、両方のデータベースに挿入するだけですか? データベースのテーブルに何かが挿入されているときに、挿入された情報を取得して別のデータベースに配置するイベントをトリガーする方法はありますか? 新しい製品または顧客アカウントが元の POS システムに追加されたときに、その情報を Web サイトのデータベースに配置したいので、これをお願いします。

4

2 に答える 2

1

あなたが説明したことから、読み取り専用の資格情報を使用してWebサイトにPOSシステムのデータベースにアクセスさせることができます。そうすれば、データを複製する必要はありません。Web サイトを悪用した場合、攻撃者は POS データベースへの書き込みアクセスを取得できなくなります。

Web アプリから POS データベースに書き込む必要があり、直接アクセスできるか心配な場合は、2 つの間に Web サービスを配置し (内部ネットワークからのみアクセス可能)、POS にアクセスする代わりにそれを呼び出すことができます。データベースを直接。実際、Web サービスを配置することは、POS システムから読み取るのにも適しています。

基本的に、データを複製して同期を維持することは大きな問題になる可能性があり、オプションを考えると回避するのが最善です.

于 2013-11-10T05:47:59.110 に答える
0

データベース接続をどのようにコーディングするかは述べていませんが、制限がないため、同時に複数のデータベースに接続することは十分に可能です。

PDO を使用していると仮定しましょう。

2 つのデータベースに接続するには、次を使用できます。

$db1 = new PDO('mysql:host=localhost;dbname=database1;charset=utf8', 
'username1', 'password1');

$db2 = new PDO('mysql:host=localhost;dbname=database2;charset=utf8', 
'username2', 'password2');

これにより、$db1 と $db2 の 2 つのデータベース参照が作成されます。

両方のデータベースに挿入するには、クエリ送信で参照を使用します

$result1 = $db1->exec("INSERT INTO table(firstname, lastname) VAULES('John', 'Doe')");
$result2 = $db2->exec("INSERT INTO table(firstname, lastname) VAULES('John', 'Doe')");
于 2013-11-10T09:45:27.013 に答える