Em outra aula de PHP eu reparei que teve um atributo que foi instanciado em forma de outro Objeto. Por exemplo, ao invés de instanciar o $produto->categoria_id, ele era instanciado como $produto->categoria = new Categoria(); Para pegar o seu valor da seguinte maneira: $produto->categoria->id, ou $produto->categoria->nome; Na verdade estava sendo usado private nos atributos, portanto era $produto->getCategoria()->getId(); mas enfim, o caso é que nesse segundo método(vamos chamar assim), para instanciar um Produto, precisa-se usar o INNER JOIN de qualquer forma, e sempre ao instanciar o Produto, devemos instanciar junto um objeto Categoria para montar o objeto com todos os seus atributos. Dessa forma dando um pouco mais de trabalho ao codar. A pergunta é: Qual dessas duas formas é a mais utilizada, onde podemos dizer que está mais organizado o código?