[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Bruno Almeida Dias Carneiro
Criador Bruno Almeida Dias Carneiro 28/10/2022

Boa tarde Carlos,

Qual seria a melhor modelagem das tabelas se os cursos tivessem diferentes disciplinas e cada uma com seus respectivos professores?

Tentei criar com 4 tabelas (nesse relacionamento), sendo elas:

-> Professor

-> Disciplinas (Aqui ficam as materias e seus conteudos)

-> Turma ( Aqui eu juntarias as matérias com o professor responsavel )

-> Classe ( Aqui eu juntaria todas as "turmas" daquele curso/classe)

Mas ficou muito confuso, quando vou puxar na minha index, uma tabelas com as classes, vem 5x a mesma por ter 5 disciplinas...

Agradeço desde já o auxilio

Manager Carlos Ferreira 28/10/2022

Olá, Bruno!
Tudo bem?

Me ajuda a entender melhor as suas tabelas e seus devidos relacionamentos:
professor x disciplina == N:N?
turma x professor == N:N?

Me dê mais detalhes por favor.

No momento de puxar os dados, como você fez?
Mostre o código por favor.

Carlos Ferreira
Criador Bruno Almeida Dias Carneiro 28/10/2022

Relacionamento:

Professor/Disciplina = N:N

Turma/Disciplina = N:N

Codigo no Controller Classe:

public function index(Request $request)
    {
        $search = request('search');
        if ($search) {
            $classes = Classe::where('turma_id', 'like', '%' . $search . '%')->groupby('turma_id')->paginate(10);
        } else {
            $classes = Classe::paginate(10);
            //dd($classes);
        }

        return view('tenant.pedagogico.matricula.classe.index', ['classes' => $classes, 'request' => $request->all()]);
    }

 

 
Bruno Almeida Dias Carneiro
Manager Carlos Ferreira 28/10/2022

Super recomendo não dar like em FK, fica meio sem sentido, porque são valores reais, logo pesquisar por igual faz mais sentido.

Exemplo:
$classes = Classe::where('turma_id', $turmaId)->groupby('turma_id')->paginate(10);

Ou:
$turma = ModelTurma::find($turmaId);
$classes = $turma->nomeRelacionamentoComClasses()->get();

Mesmo resultado da query de cima:
$turma = ModelTurma::with(['nomeRelacionamentoComClasses'])->find($turmaId);
$classes = $turma->nomeRelacionamentoComClasses;

--

O que está faltando para você é usar mais os relacionamentos do Eloquent, com o método with()

Carlos Ferreira
Criador Bruno Almeida Dias Carneiro 28/10/2022

Obrigado pelo auxilio...

 

Vou fazer assim, parar one estou, terminar o curso de eloquent e de relacionamentos...ai volto

Obrigado pela atenção e disponibilidade em audar

Bruno Almeida Dias Carneiro
Criador Bruno Almeida Dias Carneiro 28/10/2022

Carlos, boa tarde!!

Continuei minhas pesquisas, mas ainda estou com um problema,

Quando eu monto minha "tela" index de Classe, tenho uma tabela onde eu gostaria de trazer a Classe 1 por exemplo, nessa classe eu tenho a turma 1º ano com a disciplina x, a turma 1º ano com a disciplina y e a turma primeira1º ano com a disciplina z.

Na minha modelagem eu fiz Classe como uma tabela de união de turma com disciplina e professor, basicamente eu recebo turma_id, disciplina_id e funcionario_id.

Porem a minha ideia é que na index eu conseguiria mostrar apenas a primeira classe referente a turma 1º ano, e depois as referentes a outras turmas, e apenas quando entrasse em detalhes, eu conseguiria ver todas as metrias pertinentes a essa turma.

Acho que estou modelando algo de errado né!?

 

Bruno Almeida Dias Carneiro
Manager Carlos Ferreira 28/10/2022

Olá, Bruno!

Não existe certo ou errado, se é um requisito do sistema, precisa ser feito.

Se quiser compartilhar um desenho do banco comigo (MER), posso entender um pouco melhor e dar um opinião mais clara;

Carlos Ferreira
Criador Bruno Almeida Dias Carneiro 28/10/2022

Boa noite,

Vou atualizar o desenho do banco e te mando aqui uma print amanha.

Essa questão acima eu estava vacilando, na verdade eu não precisa de uma index para classe, a classe eu so preciso quando vou renderizar os detalhes da turma, tipo as materias e prossores, fiz assim...deu certo...proximo desafio a matricula, pensando que cada turma teria uma sala com numero x de alunos, acho que vou ver videos de controle de estoque para entender como eles vão ajustando o "estoque" de vagas...hehehe

To gostando muito dos seus cursos....estão me abrindo a mente e aprendendo muito

Bruno Almeida Dias Carneiro
Manager Carlos Ferreira 28/10/2022

Obrigado pelo feedback amigo.

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!