インスタンスデータレプリケーション (IDR) でのテーブル階層の保持
親子テーブル階層を複製するかどうか、および インスタンスデータレプリケーション (IDR) (IDR) のデータを複製するために使用する戦略を決定します。
レプリケーションセットを作成する前に、複製するテーブルが親子テーブル階層に含まれているかどうかを確認します。含まれている場合は、その階層を保持するかどうか、および親の観点からデータを複製するか (親テーブルに属する列のみを保持する) か、または子の観点からデータを複製するか (子テーブルに属するすべての列を保持する) を決定します。以下の利用可能な戦略を確認してください。
- 戦略 1:階層全体を保持して子列を複製する
- すべての子テーブル列を含む階層全体を保持するには、子テーブルごとに送信エントリを作成し、子テーブルごとに sys_class_name フィルターを指定します。
たとえば、タスクテーブルを複製し、すべての子テーブルのすべての列が含まれるようにするには、次のように指定します。
表 : 1. 送信エントリ テーブル フィルター タスク sys_class_name=task インシデント sys_class_name=incident 問題 sys_class_name=problem 変更要求 sys_class_name=change sys_class_name の各テーブルのフィルターを含め、すべての子テーブルについても同様です。
この戦略では、プロデューサーの各子テーブルに属する列のデータをはじめ、レコードがコンシューマーの各子テーブルに挿入されます。
- 戦略 2:階層は保持するが、子列は複製しない
- 階層を保持し、親テーブルの列のみを複製するには、親テーブルを複製し、[含まれているフィールド] リストにクラス名 [sys_class_name] フィールドを含めます。クラス名フィールドを含めると、コンシューマーインスタンスの親レコードと子レコードの区別が維持されます。たとえば、タスクテーブルとその子 (インシデント、問題、変更要求) を複製するが、タスクテーブルに属する列のみを複製する場合は、次のように指定します。
表 : 2. 送信エントリ テーブル 含まれているフィールド タスク クラス名 この戦略では、コンシューマーのタスクテーブルの sys_class_name 列が親テーブル (タスク) と子テーブル (インシデント、問題、および変更) のエントリを受け取り、レコードがコンシューマーのそれぞれの子テーブルに挿入されます。ただし、sys_class_name フィルターがないと、各子テーブルに固有の列は複製されません。
- 戦略 3:階層を無視し、親テーブルデータのみを複製する
- 階層を無視し、親レコードのみを複製するには、親テーブルを複製し、[含まれているフィールド] リストからクラス名 [sys_class_name] フィールドを除外します。クラス名フィールドを除外すると、コンシューマーインスタンスで親レコードと子レコードが区別されなくなります。コンシューマーの複製されたレコードはすべて親テーブルレコードになります。たとえば、タスクテーブルからレコードを複製し、レポートまたは監査の目的ですべてのレコードを単にタスクと見なす場合は、次のように指定します。
表 : 3. 送信エントリ テーブル 含まれているフィールド タスク クラス名フィールドを除くすべてのフィールド この戦略では、タスクテーブルを複製すると、複製されたすべてのレコードの sys_class_name 列にタスクの値が含まれ、子テーブルに属する列は複製されません。