Один из способов сделать это - разбить модель Item
на части, которые индивидуально назначаются пользователю. Если у вас есть фиксированные типы пользователей (администратор, клиент, команда и т. Д.), Которые всегда могут видеть один и тот же набор полей, эти части будут целыми группами полей. Если он очень динамичный и вы хотите иметь возможность настраивать отдельные поля для каждого пользователя, каждое поле является частью его собственного.
Таким образом, у вас будет мета-элемент, который состоит исключительно из идентификатора, на который могут ссылаться части. Это держит вместе части. Затем вы сопоставляете пользователя не с Предметом, а с деталями и воссоздаете представление элемента по общему идентификатору деталей.