追加のデータをデータベースに収める必要があり、既存のテーブル (table_existing) を変更するか、新しいテーブルを作成するかを選択できます。
現在の table_existing は次のようになります。
table_existing
-------------------------
| ID | SP | SV | Field1 |
| .. | WW | 1 | ...... |
| .. | WW | 1 | ...... |
-------------------------
オプション (A)
table_existing
----------------------------------------------------------------------
| ID | SP | SV | Field1 | Field2 | Field3 | Field4 | Field5 | Field6 |
| .. | XX | 1 | ...... | ...... | ...... | ...... | ...... | ...... |
| .. | YY | 2 | ...... | ...... | ...... | ...... | ...... | ...... |
----------------------------------------------------------------------
オプション (B)
table_existing would be converted into table_WW_1_data
---------------
| ID | Field1 |
| .. | ...... |
| .. | ...... |
---------------
table_XX_1_data
------------------------
| ID | Field1 | Field2 |
| .. | ...... | ...... |
| .. | ...... | ...... |
------------------------
table_YY_2_data
---------------------------------
| ID | Field1 | Field2 | Field3 |
| .. | ...... | ...... | ...... |
| .. | ...... | ...... | ...... |
---------------------------------
コンテキスト: SP と SV の組み合わせによって、入力されるフィールドの「数」が決まります。たとえば、(XX, 1) には 2 つのフィールドがあります。(YY, 2) には 3 つのフィールドがあります。
オプション (A) を使用すると、「より広い」テーブルに多くの空/NULL 値が含まれることになります。
オプション (B) を使用する場合、基本的にはより多くのテーブルを作成します... SP、SV の「各」組み合わせに対して 1 つ - おそらく合計で 4 ~ 5 になります。ただし、それぞれに適切な数のフィールドが完全に入力されます。table_existing も変更されます。
速度の観点から、より最適なデータベース構造はどれですか? 保守性の観点からは、オプション (B) の方がよいのではないかと思います。
編集1
2 つのオプションのどちらも、アプリケーションで最も重要な/頻繁に使用されるテーブルにはなりません。
オプション (B) では、データが分割された後、データを結合する必要はまったくありません。XX_1 のフィールドが必要であることがわかっている場合は、そのテーブルに移動します。
多くの未使用の値を持つ1つの大きなテーブルを持つことと、同じデータをより多くのテーブルに分割することの長所と短所があるかどうかを理解しようとしています。テーブルの数が増えると、データベースのパフォーマンスが低下しますか?