4

12個のテーブルを持つ単純なSQLServerデータベースがあります。各テーブルには100〜1000行あります。これらのテーブルは、Webアプリの読み込み時に配列に直接保存されます。その時点から、テーブルに直接アクセスするのではなく、配列が使用されます。別のユーザーがデータベース内のデータを変更するたびに、アレイを更新する必要があります。

これを行うために、私はajaxを使用して10秒ごとにPHPスクリプトをポーリングすることを計画しています。このスクリプトは、これらの12個のテーブルのいずれかで変更をチェックし、テーブル全体ではなく、行われた変更のみをクライアントマシンに返します。

問題は、これらの12のテーブルへの変更を記録し、Javascriptで解釈して配列を更新できるように、それらの変更をクライアントマシンに返す方法がわからないことです。

SQL Serverのテーブルへの変更を追跡するための最良/最も簡単な方法は何ですか?


おそらく、より広く適用できる私の質問をするためのより明確な方法-SQL Serverテーブルへの変更を時間の経過とともにクエリまたは検出するためにどのような方法がありますか?

4

2 に答える 2

2

また、変更データのキャプチャを調べることもできます。それはまさにあなたが必要としているもののように聞こえます。BOLは次のとおりです:http://msdn.microsoft.com/en-us/library/bb522489%28v=sql.105%29.aspx。そして、ここにPinal Daveによる記事があります:http://blog.sqlauthority.com/2009/08/15/sql-server-introduction-to-change-data-capture-cdc-in-sql-server-2008 //

基本的に、すべての変更(挿入、更新、削除)を記録し、システムテーブルから情報を取得できるようにします。残念ながら、私はあなたを正しい方向に向ける以外に、それについて自分自身で十分に知りません。

于 2013-02-13T19:21:29.540 に答える
1

一見あなたの質問を読み間違えたと思いますが、データをjavascript配列に格納しているようです。その場合、javascriptで「最終更新」タイムスタンプを保持し、データベースで「最終更新」列を維持します。コメントの1つが言ったように、ここで実際にコーディングするのは少し大変ですが、1つのアイデア:

initial.php-javascript変数内のメモリに保持されているすべてのデータを含むページをロードします。このページはcheckforupdates.php?lastUpdate=[最新の更新されたタイムスタンプ]をポーリングします

checkforupdates.php-「WHERElastUpdate>providedTimestamp」を使用してSQLクエリを実行します。echojson_encode($ data)

これはあなたを正しい方向に向けるのに十分ですか?

于 2013-02-13T18:19:10.047 に答える