Я разрабатываю приложение, в котором у меня есть модель Role
У роли есть поле type_id
.
У роли есть еще 4 поля: field_a
, field_b
, field_c
и field_d
В зависимости от выбранного типа пользователю будет показан набор полей.
Эти поля будут различаться в зависимости от выбранного типа
Например, если role.type_id == 1
, мы отобразим role.field_a
и role.field_b
в форме для создания новой роли.Это означает, что для этой роли значения field_c
и field_d
будут обнуляться.
Я пытаюсь найти хороший подход к проектированию моей схемы БД, поскольку существует более 2 типов и более 2 полей.связанных с каждым типом.
Я не хочу иметь связку null
полей для каждой записи в моей таблице roles
.
Я думал, что role_fields
таблица, в которой я буду хранить имя поля и связать его с role_type
.Таким образом, будет 2 столбца: role_type_id
и name
.тогда я могу получить все поля, связанные с данной ролью, по типу, который выбрал пользователь.
Но я предполагаю, что это усложнит вещи на внешнем интерфейсе, в представлении, где нам придется зацикливатьсянабор полей для каждой роли, чтобы отобразить поле для ввода пользователем. Это означает, что мы должны хранить тип поля (например, input или select - для этого нам также нужно будет хранить данные по умолчанию), который переполняет так быстропотому что я не хочу строить CMS здесь.