Ajuda com modelagem de um diagrama

Bom estou com bastante dificuldade em montar um diagrama
preciso fazer com que

Um Usuario que tem um (Computador) faça uma Requisição (para solucionar problema no computador)
e isso irá gerar um boletim de ocorrência (com todos os procedimentos feitos para solucionar o problema)

se alguma peça for trocada deve ser colocado no boletim de ocorrência
quais os serviços realizados devem ser colocados no boletim de ocorrência

e também tem um relatorio de peças para salvar quais peças foram utilizadas e em quais computadores.

alguém poderia me dar um help com isso pff?

1 curtida

E aí @LostSpirit, tudo bem?!

Vou logo adiantar que dá para simplificar muita coisa aí.

Veja! Quem faz a requisição é um usuário que está usando um computador, logo, não há necessidade de ter duas tabelas, você só precisa de uma única tabela, e a partir dela você pode gerir todos os outros serviços, pois quem fez uma requisição foi um computador, sacou?!

Até o momento temos uma tabela usuario e uma tabela computador_requisicao.

Agora vamos estudar a tabela boletim, esta tabela terá duas funções, a primeira é de troca (caso uma peça seja trocada) e a segunda é serviços (serviços realizados no computador), isso nos diz que só precisamos definir o tipo do boletim a ser registrado, pois de toda forma continua sendo um boletim, só que mais detalhado, percebeste?!

Bem, agora temos três tabelas.

Pois bem, veja! Os relatórios serão gerados a partir das peças que foram utilizadas, isso nos diz que que não precisamos de duas tabelas, mas de apenas uma, pensa comigo, uma peça c, que foi utilizada em um computador b, que é de um usuário a, o que temos aqui?! Exatamente, um relatório.

Fechamos em quatro tabelas, veja o diagrama simplificado de tudo que fizemos logo abaixo:
ready

OBS.: Olha se você garimpar bem, dá para simplificar ainda mais!

Abraços!

1 curtida

cara muito obrigaadooo mesmo

eu consegui abrir mt mais a cabeça com isso

estava c uma dúvida absurda com relação a peças relatorios .

De nada!

Meus parabéns :tada:.

Põe a tag [RESOLVIDO] no titulo também!

Abraços!

1 curtida

opa mano pode me tirar uma dúvida
eu precisaria botar outro dado no computador ex: cada computador tem um cpf (ex)
é obrigatorio o computador ter isso cadastrado
no caso eu teria que criar uma outra tabela computador
ai eu me embolei nessa parte kk

Como eu disse:

Mas se você quer criar outra tabela, vai em frente!

no caso para simplificar eu teria que colocar essa informação no usuario?
dai eu conseguiria pegar com um inner join?

Não cara, já imaginou se o usuário tem 5000 computadores?!

É muito mais fácil adicionar um novo atributo na tabela computador_requisicao, por exemplo um atributo computador, e armazenar um nesse atributo alguma informação que faça referência a um computador específico.

Por exemplo, no contexto de uma empresa, imagine uma equipe de TI usa um software igual o seu, como eles poderiam identificar o computador que abriu um chamado?! Dica: IP.

No seu contexto o que faz cada computador ser único?!

Deu para pegar a essência da coisa?!

Aproveitando, marca a resposta correta, a minha!

**[quote=“Tuna, post:8, topic:388864, full:true”]
Não cara, já imaginou se o usuário tem 5000 computadores?!

É muito mais fácil adicionar um novo atributo na tabela computador_requisicao, por exemplo um atributo computador, e armazenar um nesse atributo alguma informação que faça referência a um computador específico.

Por exemplo, no contexto de uma empresa, imagine uma equipe de TI usa um software igual o seu, como eles poderiam identificar o computador que abriu um chamado?! Dica: IP.

No seu contexto o que faz cada computador ser único?!

lá cada usuario só pode ter um computaodr
caso o computador dele não tenha mais solução existe uma possibilidade trocar o computador de uma pessoa aposentada e passar para ele .

e sobre a tabela serviços?
tem serviços já predefinidos
e possa ser que tenha mais de um serviço para ser feito em uma requisição

eu fiquei confuso nessa parte
no caso teria que criar uma tabela serviços com 2 campos( id , nome do serviço)
criar uma tabela Relatorio _ Serviços
que receberia o id do boletim e os ids dos serviços usados

poderia me ajudar com relação a isso?

Entendi, mesmo assim, ainda que alguém se aposente, eu vejo como ideal o usuário ser único! Meu conselho é que você faça algo mais genérico, tipo, cada usuário terá uma matrícula id.

Fazendo assim, você tem algumas vantagens, primeiro, simplicidade; segundo, o id da tabela computador_requisicao pode ser usado como o número do chamado, que você pode dá ao usuário, para ele ficar verificando o status do chamado, sem contar que por esse número, você pode saber quem abriu, quando abriu e porque abriu o chamado; outra vantagem, na hora de gerar o relatório geral, você tem a possibilidade de informar no relatório quais foram os computadores que mais quebraram, e consequentemente os que menos deram problema também, implicando em um relatório mais robusto.

Esses são alguns exemplos, mas é claro que o fator decisivo é o contexto que você está incluído, ele tem maior peso. Mas diante do que você já apresentou, acho que o que já desenvolvemos se encaixa bem.

Em algumas empresas, cada equipamento tem uma plaquinha de alumínio com um número de serie, se for o seu caso, isso pode ser uma outra maneira de identificar um computador.

sim exatamente cade computador tem essa plaquinha e é ligado a um funcionario que tem uma matricula

dei uma sacada mano, vlww
e sobre a tabela serviços?
tem serviços já predefinidos
e possa ser que tenha mais de um serviço para ser feito em uma requisição

eu fiquei confuso nessa parte
no caso teria que criar uma tabela serviços com 2 campos( id , nome do serviço)
criar uma tabela Relatorio _ Serviços
que receberia o id do boletim e os ids dos serviços usados

poderia me ajudar com relação a isso?

poderia me falar se está de acordo com o que eu expliquei?

Como eu já disse, a tabela serviços é desnecessária, você tem que ver o boletim como uma nota fiscal, você já reparou que em uma nota fiscal tem vários códigos?! cada código se refere a um produto. Se os seus serviços não muitos, então você pode mandar para o banco uma string com códigos separados por alguma coisa (vírgula por exemplo) e depois usar um for sendo que no seu código você pode ter um dicionário relacionado todos os códigos e seus significado.

Você pode ver isso aqui.

E está de acordo com o que você disse aqui:


Acho que estamos tendo alguns de comunicação aqui.

Se você fizer tudo isso não há necessidades da tabela boletim, mais uma vez, a tabela boletim é uma nota fiscal.

Abraços!

1 curtida

Acho que não, na verdade não sei dizer!

Pois, diante de tudo que já discutimos eu não entendi os motivos das tabelas que eu marquei abaixo.


Estou me baseando nisto aqui:

Leia com calma o primeiro poste que eu fiz, nele eu simplifiquei toda sua modelagem para apenas quatro tabelas, então, para ficar do jeito que tu queres é só adicionar mais colunas (atributos) na tuas tabelas, e assim problema resolvido.

Abraços!

1 curtida

Tipo essas duas tabelas eu fiz para deixar já predefinidos os serviços que são muitos ex
Trocar HD trocar fonte limpeza etc tv r caso queira adicionar mais futuramentes
E peças a mesma coisa exatamente a mesma coisa
Caso um usuario precise de 3 peças e 5 serviços ficar tudo na tabela boletim não ficaria muito dados?

Agora sim, entendi!
Então sim, creio que está tudo de acordo diante do que você falou.

Então, na tabela boletim eu colocaria apenas os serviços, pois as peças já estão registradas na tabela peças_relatorio, e eu posso recuperar todos valores a partir do id computador_requisicao com a poderosa chave secundária.

Mas a maneira que tu estás fazendo é bem aceitável, dá para compreender onde queres chegar.

1 curtida

Vlw manin pela força, essa chave seria id usuário no caso, né ?

Com o id do usuário, você pode recuperar o id do computador que fez a requisição, e com esse id você pode recuperar peças, relatórios, boletins e o que mais você desejar.

Observe tua modelagem, é da tabela computador_requisicao que todas as outras tabelas estendem, ela é ponte que liga o usuário a todas as outras tabelas, é partir dela que você poderá gerar todos os seus relatórios. Ou seja, sabendo disso, o que entra em jogo é tua lógica de programação.
d7a5859cd28f54319c8c807b285277d4e8e8f116

Abraços!

1 curtida