Fórum

arrow_back

Relacionamento de Tabelas

Elcio Balieiro Pinto

10/06/2022 12:15:06

Bom dia senhores tudo bem.

Estou implementando uma aplicação de Ordem de Serviço e uma de minhas dificuldades que tenho até hoje da Faculdade é sobre Relacionamento de 1 para muitos e de muitos para muitos.

Existe uma Tabela Peças e uma Tabela Veículo que preciso fazer o seguinte Relacionamento. Seria:

1 peça pode estar em 1 veículo

1 veículo pode ter várias peças

várias peças podem estar em 1 veículo

várias peças podem estar em vários veículos

Gostaria de um pequeno exemplo de como ficaria esse relacionamento acima no Cronapp.

Segue em anexo uma figura representativa mostrando esse relacionamento.

Aguardo retorno,

Muito obrigado,

Elcio



Icaro Antunes

14/06/2022 09:58:30

Olá, Elcio. Bom dia. Então, vou te dar as possibilidades desse seu caso, porém é sempre você que irá decidir sua regra de negócio. Caso queira tirar melhor proveito do que vou explicar, recomendo que leia nossa documentação, a qual está completa com a explicação de como funciona a diagramação de dados, inclusive esses relacionamentos que você tem dúvida: https://docs.cronapp.io/display/CRON2/Diagrama+de+dados .


Vamos lá: Tente pensar sempre na singularidade para montar a diagramação, assim você não irá se confundir na hora de decidir qual relacionamento criar, veja que há uma contradição quando você me diz isso aqui: "

-1 peça pode estar em 1 veículo

-várias peças podem estar em 1 veículo

" . Consegues perceber que , se VÁRIAS peças podem estar em UM veículo, isso já inclui também que UMA peça pode estar em UM veículo. Portanto, não faz sentido verbalizar que UMA peça pode estar em UM veículo, e sim que VÁRIAS peças podem estar em UM veículo,inclusive uma ou nenhuma, concorda? Então você já eliminaria uma hipótese de usar 1:1(UM para UM), você só usaria isso se quisesse restringir que é isso e apenas isso, entende?Usar o 1:1 É como se você estivesse dizendo: uma peça só pode estar em um veículo e esse veículo só pode ter essa única peça. 


O que nos sobra nesse problema, portanto, é decidir se vamos usar o 1:N ou NtoM... e é justamente aqui que você deve pensar de acordo com sua regra de negócio. Note:


1:N : Um veículo tem várias peças, porém essas peças só podem fazer parte de um único veículo... Faz sentido para sua regra de negócio?


N:M : Vários veículos podem ter várias peças, assim como várias peças podem estar em vários veículos... Faz sentido para você essa? 


Como disse, vai dependender da sua regra. Eu usaria N:M , pois você pode criar um atributo chamado "quantidade" de peça, e uma peça teria x quantidade(todas com mesmo id), assim, essas x peças podem estar em vários veículos diferentes, visto que você vai não vai vender todas suas 100, 200 peças de um estoque para UM mesmo carro, e sim para VÁRIOS. 

Lendo nossa documentação você irá conseguir identificar qual de fato deve usar, aplique o exemplo que te demos lá com livros e compare com o que você quer fazer. Se for a mesma ideia, só prosseguir.


Espero ter ajudado, qualquer dúvida estamos à disposição. 

Bons estudos!

Elcio Balieiro Pinto

14/06/2022 10:34:55

Bom dia Icaro,

Lembrando que a aplicação que estou construindo não é um loja de peças e sim um Orçamento de uma Mecânica de Veículos para passar para o cliente. Mas sua explicação ficou clara, vou aproveitar e ler a documentação também, muito obrigado pela a ajuda.

Há, uma outra dúvida:

Se eu criar uma tabela com 5 itens e em outra tabela precisar usar somente 3 eu consigo. Exemplo:

Tabela Veículo

Marca

Modelo

Ano

Cor

Placa

UF


Tabela Pecas

Marca

Modelo

Ano


Ou seja, vou utilizar somente 3 atributos da Tabela Veiculo na Tabela Pecas. Eu posso fazer isso?

Aguardo o seu retorno,

Muito obrigado,

Elcio