Реализация динамических полей сущности

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
dsn
Сообщения: 64
Зарегистрирован: 2011.05.11, 11:28
Контактная информация:

Реализация динамических полей сущности

Сообщение dsn »

Всем привет.
Может конечно тема и не нова, но что то уж не видел подходящих проектных решений под следящую задачу.

Вводные значения:
Есть задача реализовать coхранение, вывод и фильтрацию данных заранее не известных, что то вроде CRM системы
Например есть таблица "счета" с уже известными полями ссылками на справочники и т.д. так же есть фильтрация этих данных ну и вывод в табличной форме, но суть в том что этих данных на каком то этапе развития станет мало и чтобы не пинать прогера и не ждать - нужно дать возможность админу поиграться с настройками и динамически добавить в эту сущность необходимые поля (типы которых будут заранее известны) указать мол нужно ли выводить в табличке это поле, фильтровать по нему, будет ли оно обязательно для заполнения или же нет.

так вот как сие чудное дело хранить в БД, на данном этапе планируется использовать mysql со следующей архитектурой таблиц:

---

Код: Выделить всё

data_account (id, ...) - сама таблица счетов

fields(id, type[int,string,date,directory], name, directory_name, is_required, use_on_table, use_on_filter, use_on_report, ...) - поля и типы

data_fields_map(data_type, field_id, sort, ...) - мапа связей сущности и полей в ней

data_fields_values(id, data_type, data_id, field_id, val_int, val_date, val_string, ...) - сохранка значений полей
- так вот насколько такой подход будет адекватным?!
Чувствую будет куча подводных камней в такой реализации - или быть может есть какие то др решения может на лету в таблице (data_account) добавлять поля
Кулинарные рецепты с фото на food-list.ru
Ответить