• Members 1 сообщение
    30 сентября 2021 г. 23:54

    Как реализовать модель(ли), в которой надо хранить объекты с одним набором полей, но разными методами обработки?
    Предположим, есть сущность (назовем ее НАБОР_ТЕСТОВ), в которой в атрибуте типа JSON хранится некая сложная структура данных (иерархия тестовых вопросов), а в другом атрибуте - название для этой структуры. В целом для обработки структуры есть один набор абстрактных методов, но реализация которых для разных экземпляров записей разная.
    Данная модель соотносится по "один-ко-многим" с другой моделью (назовем ее СЕАНС_ТЕСТИРОВАНИЯ), для которой выбирается одна из записей содержащая соответствующую структуру данных (алгоритм тестирования), которая определяет набор тестовых вопросов, которые надо извлекать из JSON-структуры посредством реализованных именно для нее методов.
    Как можно реализовать такую модель?
    Прямое наследование? Но дополнительная таблица не требуется, т.к. нет дополнительных атрибутов.
    Реализация через абстрактное наследование вроде бы не подходит, т.к. нет смысла для каждого экземпляра объекта делать свою таблицу, формально содержащую одну запись (и структура атрибутов при этом одинаковы).
    Есть еще прокси-модели. Может их попробовать?
    Как хранить название модели-потомка в атрибуте родительского объекта?
    Будут ли "автоматически" изменяться методы при обращении из СЕАНСА_ТЕСТИРОВАНИЯ к НАБОРУ_ТЕСТОВ по связи или надо как-то изголяться?