Мне нужно вставить дополнительные данные в базу данных, и у меня есть выбор между изменением существующей таблицы (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 поля.
Если бы мне нужно было с Option (A), у меня было бы много значений empty/NULL в таблице "более широкий".
Если я иду с Option (B), я в основном создаю больше таблиц... один для "каждой" комбинации SP, SV - всего будет 4-5. Но каждый из них будет полностью заполнен правильным количеством полей. table_existing также будет изменен.
Какая более оптимальная структура базы данных с точки зрения скорости? Я думаю, что с точки зрения удобства обслуживания вариант (B) может быть лучше.
Edit1
Ни один из двух параметров не будет наиболее критичным/часто используемым таблицей в моем приложении.
В Варианте (B) после того, как данные были разделены, не было бы необходимости ПРИСОЕДИНИТЬСЯ к ним вообще. Если я знаю, что мне нужны поля для XX_1, я пойду к этому столу.
Я пытаюсь понять, есть ли плюсы и минусы для наличия ОДНОЙ большой таблицы со многими неиспользованными значениями, а также с тем же разделением данных на большее количество таблиц. Увеличивает ли большее количество таблиц производительность в базе данных (у нас уже есть 80 таблиц)?