3
respostas

Orientação a objetos - 2 classes .

Boa tarde é uma duvida de logica e de como estruturar ...

Imagine que eu tenho uma classe [EQUIPE]. essa equipe eu tenho: *IdEquipe *NomeEquipe *Coordenador

E tenho tambem uma classe [SUPERVISOR]: *Matricula *NomeSupervisor *Email

Na classe [SUPERVISOR] tenho a função de listagem, normal ... Quero fazer uma listagem para as equipes, mas ai que está ... no Banco de dados na tab equipe, o supervisor é a matricula do mesmo então nos atributos da minha equipe eu vou ter que ter: *SupervisorId *SupervisorNome ??

Porque na minha função de cadastrar uma nova equipe vou mandar apenas a matricula do Supervisor, mas para listar ou selecionar preciso resgatar o nome...

A função para selecionar , por exemplo seria algo desse tipo:?

   public function selecionar()
    {
        $query = "SELECT IdEquipe, NomeEquipe, NomeSupervisor FROM Equipe, Supervisor WHERE IdEquipe= :idequipe" and SupervisorId=Matricula;
        $conexao = Conexao::pegarConexao();
        $stmt = $conexao->prepare($query);
        $stmt->bindValue(':idequipe', $this->IdEquipe);
        $stmt->execute();
        $linha = $stmt->fetch();
        $this->NomeSupervisor= $linha['NomeSupervisor'];
    $this->NomeEquipe= $linha['NomeEquipe'];
    [...]
    }

Não tenho certeza se ficou claro minha duvida,, kk

3 respostas

Olá, Yago.

Por favor poderia detalhar melhor sua dúvida, ela consiste no modelagem das classes, tabelas do banco de dados ou ambos?

Att,

Acredito que minha dificuldade esteja na modelagem das classes ...

Tenho uma tabela Equipe com uma coluna Coordenador, esse item coordenador é chave estrangeira da tabela usuários ....

Na minha classe equipe, posso listar ou criar uma nova equipe ok ?

para ciar só preciso colocar a matricula do Usuario...

Mas para listar nao vou mostrar para o meu usuario a matricula dele, e sim o nome ... Então a duvida está como faço essa comunicação entre as calasses ? no momento está assim

Class equipe{

public $coordenadorId;
public $coordenadorNome;
[...]

Entre os demais atributos da equipe. Uso $coordenadorId quando quero criar uma nova equipe, $CoordenadorNome fica absoleto...

Quando vou listar preciso dos dois, pois na minha query me retorna( e preciso usar) o nome do coordenador e seu id. Não sei se estou fazendo da maneira correta;.....

Poderia, por favor inserir as informações das tabelas aqui para que possamos analisar melhor?