うまくいけば、私が以前に遭遇したことのないことを行う方法を理解するのを手伝ってくれます.
私はテーブルを持っています。それをTableAと呼び、多くの列があります。それらの 1 つは「状態」で、次のようなエントリがあります。
state
'MA'
'NJ'
'HI'
など。これらの値を、state_key 列と state 列を持つ StateTable と呼ぶ、新しい外部キー テーブルに引き出す何らかの方法を作成したいと思います。
たとえば、次のように行ごとに処理を進めていきます。
行 1: TableA の「状態」列の値は「MA」です。StateTable に、'state' 列が 'MA' であるエントリがあるかどうかを確認してください。その場合は、その行の state_key を取得し、TableA のエントリを外部キーに置き換えて、その値を直接格納する代わりに、その行に「MA」への FK が含まれるようにします。StateTable に「MA」エントリがない場合は、それを挿入し、新しい FK で同じことを行います。など、行ごとに。
したがって、最終結果は 2 つのテーブルになります。
表A
state
1
2
3
状態テーブル
state_key state
1 'MA'
2 'NJ'
3 'HI'
有限値の数がやや少ないステートなど、他の列に対してもこれを行う必要があるため、ハードコーディングされたものは何もないはずです。
tl;dr 列を FK されたテーブルに変換しながら、列のデータを保持する方法。
何か案は?ありがとう!!