Шестая Нормальная Форма - формальный способ реализовать это.Выберите 3NF для всех таблиц и 6NF для одной или двух таблиц, в которые нужно добавить столбцы без изменений DDL.Используйте экономно.
EAV - ублюдок 6NF.Это означает, что люди, которые делают это и пишут об этом, не имеют формального понимания 6NF, поэтому часто создают чудовища.
Конечно, вы должны соблюдать хорошие стандарты: используйте типы данных;Декларативная ссылочная целостность (иностранные ключи);и т.д. Не сдавайся, получай что-нибудь.Бегите, как черт, от всех, кто говорит вам, что вы должны отказаться от них.
6NF / EAV очень быстр, нет никаких препятствий для использования возможностей обработки множеств на сервере.Опять же, убегайте от всех, кто говорит вам, что вы должны использовать построчную обработку или курсоры или что вы не можете легко построить столбцы из строк.Отправьте сообщение снова, если у вас есть конкретные проблемы.
Это требует выхода за пределы текущей возможности (управления, DDL) SQL;Чтобы сделать это контролируемым образом и избежать создания неуправляемых монстров, вам нужен небольшой каталог, содержащий метаданные.Если вы сообразительны, вы можете использовать его для генерации SQL, переписанного для запросов, и, таким образом, избавиться от большого количества ручного труда.
Существует много дезинформации, и некоторые люди с "rep" не имеют понятия.Чтобы добиться технического успеха, нам нужна точная информация, а не мифы и распространение страха.Возможно, вас заинтересует недавний пост, в котором я попытался установить секундную прямую .