他の多くのシステムからのデータを格納するための中央リポジトリであるシステムを構築しています。他のシステムのデータが更新されたときに中央リポジトリを更新するには、同期プロセスが必要です。中央リポジトリが同期する必要があるシステムと必要な同期のタイプを識別するための sync_action テーブルがあります。変更される可能性が非常に低い一連の定義済みアクションがあります。スリム化されたシステムを以下に示します。
私が見ているように、これには2つの方法でアプローチできます。
オプション 1 ) Action
3 つのアクションが利用可能なテーブルを用意します。sync_action
外部キーを使用して必要なアクションを参照するテーブルを用意します。
表:システム
ID Description
1 Slave System 1
2 Slave System 2
表:アクション
ID Description
1 Insert
2 Update
3 Delete
表:同期アクション
ID Action System
1 1 1
2 2 1
オプション 2 ) 外部キーの代わりに、sync_action.action
列にチェック制約を使用して、アクションのみInsert/Update/Delete
を挿入できるようにします。
表:同期アクション
ID Action System
1 Insert 1
2 Update 1
整合性制約、外部キーとチェック制約の間で決定するときに、どちらがより良いアプローチであるかを決定する要因を知りたいです。同様のスレッドがありましたが、十分に決定的なものではありませんでした。これは解釈次第かもしれませんが、どんな考えでも大歓迎です。
乾杯