Article image
Máximo Rodrigues
Máximo Rodrigues25/08/2022 15:44
Compartilhe

Projeto Banco de Dados Oficina Refinado

  • #MySQL

Quem puder revisar esse projeto eu agradeço. Fiquei com um pouco de dúvidas em relação ao relacionamento.

Agradeço

Compartilhe
Comentários (4)
Máximo Rodrigues
Máximo Rodrigues - 25/08/2022 21:14

Sim.

https://github.com/maxximogr/Projeto-Banco-de-Dados.git

Nivaldo Paulo
Nivaldo Paulo - 25/08/2022 20:18

Colocou no github?

Máximo Rodrigues
Máximo Rodrigues - 25/08/2022 19:31

Muito obrigado!

Irei refatorar.

Danilo Saraiva
Danilo Saraiva - 25/08/2022 19:15

Olá, vou deixar algumas considerações baseadas no meu mainset

Precisa refatorar algumas coisas:

♦ O relacionamento CLIENTE, VEICULO gera uma nova tabela N:N pois um cliente pode ter 1 ou mais veiculos.

♦ Da mesma maneira SERVICO e ORCAMENTO, onde um orçamento gera mais de um serviço, é necessário uma tabela N:N para representar este movimento.

♦ Em FUNCIONARIO você colocou uma fk referenciando a EQUIPE e em EQUIPE você referenciou FUNCIONARIO, ao meu ver as duas abordagens dariam certo, porém uma ou a outra. Porém pede que um funcionário participe somente de uma equipe, assim crie equipe e referencie em funcionário por meio de uma fk.

♦ Na tabela ESTOQUE você criou uma relação 1:1 com TABELA_SERVICO, caso você pretenda adicionar os itens você precisa criar um N:N com com estoque gerando uma tabela ITEM_SERVICO por exemplo, que irá receber o "id_item" e a "quantidade" e "id_tabela_servico", isso implica em refatorar a estrutura estoque e criar uma tabela que armazene os itens previamente.

♦ A relação ESTOQUE e FUNCIONARIOS não existe o porque dela, neste contexto.

♦ Se não me engano, após a avaliação é destinado a uma equipe que irá fazer o concerto do veiculo, então sua tabela ANALISE_VEICULO não deveria existir *** Confere este ponto do contexto pra ter certeza, talvez eu esteja errado ***

♦ FUNCIONARIO tem um campo "departamento_de_compras" e não faz sentido existir...

♦ A tabela EXECUCAO_OS ficou perfeita o relacionamento, seria interessante você adicionar um PRIMARY KEY(id) nela, para você conseguir fazer pesquisas dela posteriormente utilizando INNER JOIN.

♦ o atributo "data_conclusao" na tabela ORDEM_SERVICO está como NOT NULL, ou seja, quando você adicionar um dado nesta tabela, você vai precisar adicionar uma data de conclusão, só que não sabemos a data de conclusão no momento da inserção dos dados, desta maneira não pode utilizar NOT NULL neste contexto.


Bom passando o olho basicamente estes pontos que posso salientar que querem mudanças, acho que vai te dar um norte legal, aplique estes conceitos para todas entidades, eu preciso refatorar o meu projeto tbm, quando você for criar o banco de dado, vai notar algumas coisas "faltando" e é normal, cabe você refatorar seu esquema, este processo é normal.


Espero ter ajudado ;)