Herança PHP e MySQL

Então, estou tentando adotar boas técnicas de programação orientadas a objeto com o PHP. A maioria (leia todos) dos meus projetos envolve um banco de dados MySQL. Meu problema imediato lida com o modelo de usuários que preciso desenvolver.

Meu projeto atual tem agentes e leads. Os agentes e leads são usuários com muitas das mesmas informações. Então, obviamente, eu quero uma classe Agents e uma classe Leads para estender uma classe comum de usuários. Agora, minha pergunta é a seguinte:

Como deve ser melhor o SQL para carregar esses objetos? Eu não quero executar várias instruções SQL quando eu instancio um agente ou um lead. No entanto, a lógica me diz que quando o construtor Usuários é acionado, ele deve executar uma instrução SQL para carregar as informações comuns entre Agentes e Clientes (nome de usuário, senha, email, informações de contato, etc). A lógica também me diz que quando o construtor Agents or Leads é disparado, eu quero executar o SQL para carregar os dados exclusivos da classe Agents or Leads .... Mas, novamente, a lógica também me diz que é uma má ideia executar 2 Instruções SQL toda vez que eu precisar de um agente ou lead (como pode haver milhares de cada).

Eu tentei procurar exemplos de como isso é geralmente tratado sem sucesso ... Talvez eu esteja apenas procurando a coisa errada?

questionAnswers(3)

yourAnswerToTheQuestion