Kohana (KO3) ORM универсальная сводная таблица (поля: model1, model1_id, model2, model2_id) - возможно?
-
28-10-2019 - |
Вопрос
У меня следующая настройка моделей:
родовое словоОбъект страницы может совместно использовать объект File с одним или несколькими объектами галереи в качестве фона.И на каком-то этапе позже появилась новая модель вроде
родовое словоили подобное может появиться в приложении.
Обратите внимание, что мне нужна файловая модель вместо того, чтобы просто хранить пути к фактическим файлам, потому что файловая модель может ссылаться на несколько файлов в файловой системе
родовое словоИтак, есть ли простой способ (без перезаписи всего класса ORM) реализовать отношения, в которых использовалась бы «общая» сводная таблица со следующими полями:
родовое словоПричина: я хочу иметь универсальный модуль приложения для проверки "потерянных" файлов, а также иметь возможность определять, к чему прикреплен каждый файл, поэтому, например, при удалении файла из галереи приложение будетпредупредить, что файл все еще прикреплен к странице в качестве фона.
Решение
Короткий ответ - нет.Причина в том, что model_id будет конфликтовать с другими идентификаторами модели.При желании вы могли бы создать уникальный индекс для model_name + model_id, но для объединения этих двух столбцов потребовалось бы, чтобы вы переписали методы ORM, чтобы объединить модели через их отношения.
Я бы, честно говоря, придерживался простых сводных таблиц.