0

次の表を考えます。

tableA:        | tableB:
               |
col1  col2     | col3  col4
-----------    | ----------
1     4        | 1     x
2     5        | 2     x
3     6        | 1     z
               | 2     z
               | 3     z

(1-4、2-5、3-6)からのマッピングで col3 の値を変更することにより、tableB のいくつかの行に追加される DB2 にストアド プロシージャを記述したいtableAので、これらの行が追加されます。

の行を調べるとcol4 = x、これらの行を tableB に追加する必要があります。

               | 4     A1 -> (only 1 changed to its mapping value 4)
               | 2     A1

               | 1     B1   
               | 5     B1 -> (only 2 changed to its mapping value 5)

               | 4     C1 -> (1 changed to its mapping value 4)
               | 5     C1 -> (and 2 changed to its mapping value 5)

の行を調べてcol4 = z、これらの行を tableB に追加する必要があります。

               | 4     A2 -> (only 1 changed to its mapping value 4)
               | 2     A2
               | 3     A2

               | 1     B2 
               | 5     B2 -> (only 2 changed to its mapping value 5)
               | 3     B2

               | 1     C2 
               | 2     C2
               | 6     C2 -> (only 3 changed to its mapping value 6)

               | 4     D2 -> (1 changed to its mapping value 4)
               | 5     D2 -> (and 2 changed to its mapping value 5)
               | 3     D2

               | 4     E2 -> (1 changed to its mapping value 4)
               | 2     E2
               | 6     E2 -> (and 3 changed to its mapping value 6)

               | 1     F2 
               | 5     F2 -> (2 changed to its mapping value 5)
               | 6     F2 -> (and 3 changed to its mapping value 6)

               | 4     G2 -> (1 changed to its mapping value 4)
               | 5     G2 -> (and 2 changed to its mapping value 5)
               | 6     G2 -> (and 3 changed to its mapping value 6)

ここで、私の例では次のことに注意してください。

  • 2 対 1 のマッピング ([1,x] と [2,x] の 2 つの行で表される) であるため、tableB にさらに 3 つの行が追加されます。
  • および 3 対 1 のマッピング ([1,z]、[2,z]、および [3,z] の 3 行で表される) であるため、tableB にさらに 7 行が追加されます。

tableB に 4 対 1 のマッピング (4 行で表される) がある場合、さらに 15 行を追加する必要がありました。
tableB に 5 対 1 のマッピング (5 行で表される) がある場合、さらに 31 行を追加する必要がありました...

(これらのマッピングを tableA のマッピングと混同しないでください。違います)

4

1 に答える 1

0

私には理解するのが非常に難しい。

各サブセットを削除してから、現在のマッピングを挿入するのが最善だと思います。(デルタを把握しようとするのではなく)

これは、このように非正規化しない正当な理由のようです。

于 2012-09-04T13:24:11.977 に答える