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