Подход к проектированию базы данных: запись в БД будет иметь пустые поля в зависимости от одного из выбранных полей - PullRequest
0 голосов
/ 07 февраля 2019

Я разрабатываю приложение, в котором у меня есть модель 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 здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...