Как правильнее организовать структуру бд?
Однозначно третий вариант. И уж точно не второй, так как он идёт вразрез со всеми принципами проектирования реляционных БД.
Есть ещё вариант использования EAV или не реляционной СУБД.
Через таблицу линковок внешних и внутренних полей.Таблицы:
1. Список поставщиков данных (id, название, ...)
2. Список полей внутри вашей системы для внешних данных (id, название_поля, назначение, .....)
3. Поля поставщиков (id, id_поставщика, конкретное_входное_поле_поставщика, описание_поля, regex-фильтр, количество_ошибок_фильтра,....)
4. Линковка полей (id, id_поля_поставщика, id_поля_в_вашей_системе, когда_слинковано, кем_слинковано,....)