0

1 つは、多くの場合、次のような主キーを持っていますが、非正規化されたテーブルに反対します。

| RowID  | Column1 | Column2 | Column3 | Column4 | ...
| 'Row1' | 'a1'    | 'a2'    | 'a3'    | 'a4'    |
| 'Row2' | 'b1'    | 'b2'    | 'b3'    | 'b4'    |
| 'Row3' | 'c1'    | 'c2'    | 'c3'    | 'c4'    |
...

問題は、データを格納する 3nf に効率的に変換する方法です。(理想的には、列の数とその名前が不明であると仮定しましょう)

| RowID | ColumnID | Value |
| 1     | 1        | 'a1'  |
| 1     | 2        | 'a2'  |
...

または、理想的には、

| RowID  | ColumnID  | Value |
| 'Row1' | 'Column1' | 'a1'  |
| 'Row1' | 'Column2' | 'a2'  |
...

私が知っている 1 つの解決策は、いくつかの UNION を使用して列を次々と選択することですが、列が多い場合、スクリプトは見栄えが悪くなります。

どんな助けでも大歓迎です!

よろしく、コンスタンティン。

4

1 に答える 1