1

外部キー参照を使用してユーザー データが格納される db スキーマがあります。これらの外部キーは管理者定義です。また、主キーなしで保存されているデータもありますが、冗長性やその他の問題を回避するために、他の制約を設けています。

ユーザーが自分の情報を「更新」するときのアプリケーションの要件により、「更新された」テーブルからすべてのユーザー レコードを削除し、すべてのユーザー レコードを再度挿入する必要があります。(私は他のすべてのオプションを調べました)

私の検索ソリューション (solr) のために、ユーザー データ (更新/削除) への変更を追跡する必要があります。最後にコミットされたデータをリアルタイム データと比較するビューを計画しています。ストアド プロシージャを 20 分ごとに実行することがどれだけ持続可能か心配です。SQL を使用してデータを追跡するより良い方法はありますか?

4

1 に答える 1

2

元のテーブルと同じ列に加えて、"UpdatedOn" という別の列を含む変更テーブルを作成できます。次に、元のテーブルが変更されたときに、この変更テーブルに元の値を書き込むトリガーを設定します。

例: 元のテーブル:

Name | Address | City
Jane Doe | 1 Main St. | New York

元のテーブルに変更:

Name | Address | City
Jane Doe | 2 Smith St. | Dubuque

...変更テーブルへの挿入をトリガーします。

Name | Address | City | UpdatedOn
Jane Doe | 1 Main St. | New York | 2012-01-01

mysql でのトリガーの使用に関する情報は、http://dev.mysql.com/doc/refman/5.0/en/triggers.html にあります

于 2012-12-07T00:03:54.283 に答える