Этот вопрос не зависит от программного обеспечения / платформы. Я просто ищу общий код SQL.
Рассмотрим следующие (например, очень простые) таблицы:
Table: Authors id | name 1 | Tyson 2 | Gordon 3 | Tony etc Table: Books id | author | title 1 | 1 | Tyson's First Book 2 | 2 | Gordon's Book 3 | 1 | Tyson's Second Book 4 | 3 | Tony's Book etc Table: Stores id | name 1 | Books Overflow 2 | Books Exchange etc Table: Stores_Books id | store | book 1 | 1 | 1 2 | 2 | 4 3 | 1 | 3 4 | 2 | 2
Как видите, между Book
s существует отношение «один ко многим» и Автор
и связь «многие ко многим» между Книга
и Магазин
s.
Вопрос первый: Что лучше запрос на готовность загрузить одного автора и его книги (и где книги продаются) в объектно-ориентированную программу, где каждая строка представляет экземпляр объекта?
Вопрос второй: Какой запрос лучше всего подходит для активной загрузки все дерево объектов в объектно-ориентированную программу, где каждая строка представляет экземпляр объекта?
Обе эти ситуации легко представить при отложенной загрузке. В любой ситуации вы можете получить автора одним запросом, а затем, как только вам понадобятся его книги (и в каких магазинах они продаются), вы воспользуетесь другим запросом для получения этой информации.
Ленивая загрузка - лучший способ получить эту информацию. сделать это, или я должен использовать объединение и анализировать результат при создании дерева объектов (в попытке быстро загрузить данные)? В этой ситуации, какой будет оптимальный выход соединения / целевого объекта из базы данных, чтобы сделать как можно более простой синтаксический анализ?
Насколько я могу судить, при активной загрузке мне нужно было бы управлять словарем или индексом какого-либо вида всех объектов, пока я анализирую данные. Так ли это на самом деле или есть способ лучше?