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