позвольте мне сначала заявить, что мы используем базу данных php и postgre.В нашем проекте мы решили не использовать ORM из-за его перегрузки SQL-запросов, и мы выбираем противоположный путь.
Представьте, что у вас есть выбор из нескольких таблиц, скажем, объединенных в столбцах идентификаторов.Например:
- таблицы: пользователи (идентификатор, имя), элементы (идентификатор, имя, описание), комментарии (идентификатор_пользователя, идентификатор_позиции, текст, рейтинг)
Итакв основном у вас есть таблица пользователей, таблица некоторых элементов и таблица комментариев, которые относятся к одному пользователю и одному элементу.
Вы создаете два объекта - пользователя и элемент, представляющие их строку таблицы.И тогда вы хотите создать объект комментария.В ORM он будет содержать объекты user и item, и они будут загружать себя своими запросами, но это будет два запроса, и вы подумаете ... хм, но я могу выбрать эти данные одним запросом ... но как?
Представьте, что у вас есть этот выбор:
SELECT * FROM comments JOIN users ON comments.user_id = users.id JOIN items ON comments.item_id = items.id
(вы можете также представить предложение WHERE с указанным идентификатором элемента или идентификатором пользователя и т. Д.)
Итак, как бы вы разбили результат такого выбора на структуру этого класса, скажем, вам нужен список объектов комментариев:
- user
- item
- комментарий (содержит ссылки на пользователя и объект элемента)
До сих пор нашим теоретическим решением было префикс имени столбцов с фиксированными префиксами :), а затем распространение результата в объектструктура и каждый объект берет то, что ему нужно от выбора.Любые другие решения?Скажем более изощренным?
Спасибо за любые идеи
PS: очевидно, я использовал очень простой пример, но постараюсь представить, что проблема намного больше, а структура гораздо сложнее