Разрешение пользователям определять столбцы, как правило, является плохим выбором, так как они не знают, что они делают или как правильно связать их с другими данными. Иногда люди используют подход EAV и позволяют им добавлять столько столбцов, сколько они хотят, но это быстро выходит из-под контроля и вызывает проблемы с производительностью и затрудняет запрос данных.
Другие используют подход с таблицей с пользовательскими столбцами и задают им определенное количество столбцов, которые они могут определить. Это работает лучше с точки зрения производительности, но больше ограничивает количество новых столбцов, которые они могут определить.
В любом случае вы должны строго ограничить тех, кто может определять дополнительные столбцы, только системным администраторам (которые могут находиться на уровне клиента). Лучше на самом деле поговорить с пользователями на этапе проектирования и посмотреть, что им нужно. Вы обнаружите, что можете должным образом спроектировать систему, которая имеет 90 +% потребности клиента, если вы действительно общаетесь с ними (и не только с менеджерами, а также с пользователями на всех уровнях организации).
Я знаю, что в современном мире часто снимают с себя ответственность за проектирование, говоря, что мы делаем вещи гибкими, но мне пришлось использовать и обеспечить поддержку dba для многих из этих систем и для большей гибкости, которую они пытаются сделать дизайн, тем сложнее пользователям пользоваться и тем больше пользователи ненавидят систему.