Dúvida em inserção n para n

9 respostas
R

Galera, já fiz alguns sistemas simples e nunca tive problema quanto a inserções no banco de tal. Só que tem uma coisa que tá me encucando. Me meti a fazer um sistema de clinica médica. Minha dúvida é a seguinte

eu tenho a tabela médicos e tenho a tabela especialidades, ou seja um médico pode ter n especialidades e uma especialidade pode ter n médicos. Na hora do crud como eu faria esse inserção?

Tipo vou cadastrar o médico mas ele tem mais de uma especialidade e aí como faz?

não sei se foi muito claro. Qualquer coisa é só perguntar.

9 Respostas

Jonathan_Medeiros

Imagine um objeto do tipo médico que contém uma lista do tipo especialidades médicas, ambos possuirão identificadores, com isso, basta fazer a inserção dos registros, não tem muito segredo!

R

Tô entendendo, mas ainda tá meio raso. Tipo na hora de criar a Classe eu já coloco que a Classe Médico tem uma lista de especialidades?

Jonathan_Medeiros

Sim!

Exemplo:

public class Especialidade {

    private Long id;
    private String descricao;

    //getters e setters

}

public class Medico {

    private Long id;
    private String nome;
    private List<Especialidade> especialidades;

    //getters e setters

}

Essa é uma das possibilidades, eu considero uma das mais simples, pode ser resolvido de outras formas, aí depende muito da questão: problema x solução x resultado esperado.

R

Certo e na hora de salvar isso no banco, eu teria que ter três tabelas, correto?
a de médico a de especialidades e a médico_tem_especialidades?
Eu teria que em algum momento recuperar esses id e jogar para a tabela medico_tem_especialidades

Jonathan_Medeiros

Isso, você terá que ter estes registros com o id carregado, desta forma você faz a inserção no DB com base nisso.

Você vai ver que ao longo do desenvolvimento as coisas começam a fazer sentido e se conectarem!

R

Mano, tu pode me indicar algum material que fale sobre isso? Ou me mostrar algum exemplo de uma inserção no bd dessa forma?

Jonathan_Medeiros

Tenho esse exemplo no meu github: https://github.com/jonathanmdr/pizzaria-api

É uma API básica de um pedido de pizzaria, onde tenho as tabelas: pizza, adicionais e pizza_adicionais.

O projeto é feito em Java com Spring, não sei como você está fazendo e o que está usando, se puder compartilhar seu código e como está montando tudo, fica mais fácil de te ajudar.

R

Eu ainda nem comecei a fazer. Mas já tô pensando nisso pq ainda não fiz nenhuma inserção desse tipo. Vou fazer no swing msm. O spring agora que to pegando as primeiras aulas. Como eu já fiz um outro sistema em swing e nele tem relatório, editar, salvar, excluir, tabelas, eu achei melhor fazer em swing pq pelo menos já sei um pouco de coisa.

Jonathan_Medeiros

Entendi, em Swing não um exemplo de código aberto para te mostrar, mas te recomendaria começar a fazer, vai montando as classes com calma e paciência e a medida em que você for travando vai compartilhando aqui onde você travou que a comunidade vai te auxiliando, não fique sofrendo por antecipação com essa implementação de inserção de registros em uma tabela N:N, as coisas vão começar a ficarem mais clarar à medida que você for avançando no desenvolvimento.

Criado 23 de outubro de 2019
Ultima resposta 24 de out. de 2019
Respostas 9
Participantes 2