0

Software as a Service を含むプロジェクトがあります。アプリには、1 つの SystemDB と複数の顧客データベースがあります。顧客データベースはまったく同じです (すべてのテーブルは同じです)。システム データベースには、dbname、dbPassword、dbUsername などの顧客データベースからのすべての詳細を含むテーブルが含まれています。

すべてのデータベースを更新して、更新が正しいことを確認するにはどうすればよいですか。例えば。すべてのデータベースには変換テーブルがあります。すべての表に単語を追加したい。または、スペルミスのある単語を更新したい。維持しようとしている 50 以上のデータベースがあります。そのため、手作業はできません。

これを実行できるソフトウェアまたはフレームワークに関する提案。

私はPHP5.4.0を使用していますが、特定のフレームワークはまだありません.DBとしてMS Sql 2008R2を使用しています

ありがとう、

4

4 に答える 4

1

複数のデータベースから読み取る同様の状況があります。私たちのplはC#.netです。そのために、各データベースを 1 つずつ実行して接続し、データを 1 つのサーバーで管理する C#.net コードを作成しました。.Net では、スクリプトの更新や挿入などの実行クエリを使用する必要があります。これにより、接続と更新の手動作業を回避できます。

于 2012-05-02T10:19:09.620 に答える
1

これには、SQL Server によって暗黙的にサポートされているレプリケーションを使用してアプローチします。レプリケーションにより、システム データベース (パブリッシャ) 内の特定のテーブルをパブリッシュし、1 つ以上の顧客データベース (サブスクライバ) からのデータ変更をサブスクライブできます。データを一方向にのみプッシュし、特定のテーブルとシステム データベースをミラーリングしているため、これはうまく機能します。

SSMS からレプリケーションを設定できます。オブジェクト エクスプローラーでサーバーの下のレプリケーション ブランチを展開し、[ローカル パブリケーション] を右クリックして [パブリケーションの作成] を選択します。ウィザードが公開プロセスを案内します。サブスクリプションについても同じことを行い、顧客データベースごとにサブスクリプションを作成します。

多くの顧客データベースがあるため、t-sql を使用してサブスクリプションを作成し、そのコードをすべてのターゲット データベースに複製することは価値があります。これを行う方法については、http://msdn.microsoft.com/en-us/library/ms147346.aspx を参照してください。

于 2012-05-02T06:37:00.867 に答える
0

残念ながら、これを行うための魔法の杖はありません。しかし、何か魔法を使いたいと思ったら、ORM を使ってみてください。それは人生をとても簡単にします。

私のお気に入りは

Doctrine ORM - http://www.doctrine-project.org/

もちろん他にもたくさんあります。推進するRedbeanPHP

于 2012-05-02T06:20:27.783 に答える
0

データベース トリガーを使用して、他のデータベースのテーブルを更新します。

于 2012-05-02T06:19:58.810 に答える