Как лучше перепроектировать базу?
Мне кажется существующий вариант вполне хорош и удобен. Чем он вам не угодил?
таблица clients - id, created_at, updated_at, type
таблица client_fields - client_id, field_name, field_value
Но я так понимаю у вас примерно тоже самое, просто описание полей вынесено в отдельную таблицу. Вполне себе достойное решение