Tenho um fornecedor que está começando a me fornecer alguns relatórios bastante grandes sobre as conclusões e o uso do curso.
Eles têm dois formatos para os relatórios:
Se um aluno estiver matriculado em um curso, ele terá uma entrada de linha com informações básicas do aluno e do curso para cada curso. Os campos seriam nome do aluno, id do aluno, e-mail do aluno, nome do curso, status do curso, data de conclusão do curso.
Cada aluno teria uma linha. Cada curso seria representado por uma coluna diferente. Assim, teríamos nome do aluno, id do aluno, e-mail do aluno, nome do curso A, status do curso A, data de conclusão do curso A, nome do curso B, status do curso B, data de conclusão do curso B, nome do curso C, status do curso C, data de conclusão do curso C, nome do curso D, status do curso D, data de conclusão do curso D...
O ponto positivo do relatório nº 2 é que ele é muito menor que o relatório nº 1. No entanto, estou tendo dificuldade em controlar a execução de visualizações e trabalhos com base em uma tabela de colunas variáveis (conforme os cursos são adicionados, eu realmente não sei).
Preciso fazer alguns relatórios de uso avançados e encerrar as informações do aluno com determinados cursos e conclusões. Existe uma razão pela qual um dos formatos brutos facilitará meu trabalho ou facilitará as consultas do banco de dados?
Do ponto de vista do design do banco de dados, o número 1 é melhor. Mas... Em ambos os casos (#1 ou #2) você não deve preencher seu banco de dados com apenas uma tabela.
Você deve ter essas tabelas (pelo menos):