Определенно, создайте базовый профиль (или, возможно, группу базовых профилей, например, на основе национальности или любого другого значимого раздела), где представлены все правила и значения по умолчанию.
На уровне пользователя создайте только «исключения», т.е. только значения, которые были изменены пользователем, и всегда обращайтесь к профилю как к соединению между соответствующим базовым профилем и пользовательскими исключениями (которые, будем надеяться, будут пустыми). т.е. не существует в БД).
Единственная проблема заключается в том, что различные значения по умолчанию должны быть сгруппированы в несколько меньших (в смысле количества полей) таблиц, в противном случае вы не получите никакой выгоды от этого подхода (т. Е. Если вы установите все возможные настройки в одной записи таблицы вам придется дублировать все, как только пользователь изменит только одно поле, и это не даст никакой выгоды).