«Изменение столбцов таблицы позже будет дорогостоящим и подверженным ошибкам, верно?»
«Столбец таблицы», как вы его называете, имеет ровно два свойства: его имя и тип данных. Следовательно, «изменение столбца таблицы» может относиться только к двум вещам: изменение имени или изменение типа данных.
Желание изменить имя действительно является дорогостоящей и подверженной ошибкам операцией, но, к счастью, никогда не должно быть настоящей деловой потребностью в этом. Если определенный установленный столбец кажется несколько неуместным, с запоздалой мыслью и «возможно, ему было дано лучшее имя», тогда дело в том, что бизнес не понесет убытки от этого факта! Просто придерживайтесь старого имени, даже если с запоздалой мыслью оно было выбрано неудачно.
Желание изменить тип данных действительно является дорогостоящей операцией, подверженной нарушению бесперебойной работы бизнес-операций, но, к счастью, довольно редко пользователь приходит к вам, чтобы сказать вам: «Эй, я знаю, что сказал вам этот атрибут Должно быть, Дата, но угадайте, что, я был не прав, это должен быть Поплавок ". И других изменений того же характера, но с большей вероятностью происходящих (например, от сокращения к целому или около того), можно избежать, проявляя осторожность при определении базы данных.
Другие типы изменений в базе данных (например, добавление нового столбца) обычно не так опасны и / или разрушительны.
Так что не позволяйте себе пугаться тех смутных лозунговых фраз, как «изменение базы данных дорого и опасно». Они обычно происходят от невежественных людей, которые слишком мало знают об управлении базами данных, чтобы в любом случае участвовать в этой конкретной области нашей профессии.
Поддержание запросов, ограничений и принудительного применения к базе данных EAV, скорее всего, окажется в тысячи раз дороже, чем "обычные" изменения структуры базы данных.