Я использую RedBean для создания приложения табеля учета рабочего времени.
Вот (упрощенная) структура БД:
Владелец
- id
- имя
- Эл. адрес
Проект
- id
- описание
- owner_id
Задача
- id
- описание
- project_id
Журнал
- id
- Начало
- конец
- описание
- идентификатор_задачи
Структура таблицы намного сложнее, чем выше, но этого должно быть достаточно, чтобы продемонстрировать мою проблему.
В задаче сотни элементов журнала, а в проекте сотни задач.
Итак, если бы я хотел получить все элементы журнала для конкретного владельца, а также получить связанные задачи и проекты, как бы я этого добился?
Использование SQL-запроса для получения данных достаточно прямолинейно, я могу выбрать, какие данные мне нужны и т. д., но если я изменю данные, мне нужно создать из них bean-компоненты. Поскольку некоторые таблицы имеют похожие имена столбцов, RedBean не будет (или, кажется, не волшебным образом) преобразовывать данные в bean-компоненты.
Итак, я думаю, мой вопрос заключается в том, как создать запрос RedBean, получить, получить все, выбрать, загрузить и т. Д., Который будет преобразовывать данные, которые он использует для каждого соединения, в bean-компонент?
Самое близкое, что я могу найти, - это метод traverse, который означает, что Id рекурсивно входит в каждый компонент, чтобы найти его дочерние элементы, но это означает возврат всего набора результатов и его обработку.
Если самый быстрый способ - просто запустить SQL-запрос и выполнить итерацию по данным и создать из них bean-компоненты, никаких проблем. Я уже делаю это, я просто хотел немного более абстрактный способ сделать это и подумал, что RedBean может предложить эту функциональность.