Galera, boa noite.
Sou novo em programação, e gostaria de um esclarecimento sobre normalização no banco de dados: Estou tentando fazer meu TCC em Java Swing, porém a parte mais complicado é o banco de dados. Me deram um conselho sobre seguir a 3FN, então estou tentando separar as coisas, veja essas imagens:
Eu tenho os atributos: Celular1, Celular2, Telefone, Email…
Depois removi e deixei dessa forma, agora vem a dúvida:
Como vou fazer dentro da minha aplicação para conseguir gravar nessa tabela ContatoPessoa os números de celular, email e telefone fixo?
Antes de pensar na aplicação, mostre o modelo correto com esses campos.
Você quer dizer, mostrar o modelo do meu banco?
Voce falou dos campos Celular, Email, Fixo que estariam na ContatoPessoa, mas na imagem que voce mostrou nao tem isso.
O meu amigo, desculpa.Realmente não tem, quero só saber como vou inserir na tabela ContatoPessoa, o código da pessoa e o contato.
Sua dúvida não ficou clara. Basicamente seria um INSERT passando o código do contato e o código da pessoa. Esqueceu de falar o que esta usando para a aplicação. Se for Java segue exemplo:
INSERT INTO ContatoPessoa (CodContato, CodPessoa)
VALUES (?, ?)
https://www.mkyong.com/jdbc/jdbc-preparestatement-example-insert-a-record/
1 curtida
Eu também não entendi muito bem, mas se sua dúvida é em relação a tabela N:N, você primeiro vai inserir o contato e depois inserir na tabela N:N para fazer o mapeamento entre o contato e a pessoa, pois dessa forma você terá os dois códigos necessários.
Entendi, queria arrumar uma forma de inserir tudo de uma vez, mais não é possivel pois não terei o valor da chave estrangeira.
Dá uma estudada em lógica de programação, antes de pular para banco de dados.
Quando falamos em criação de tabelas, existem várias regras e boas práticas que, nem sempre, são utilizadas (como na programação e no mundo, em geral).
Pois bem, temos alguns tipos de relacionamento entre tabelas:
- Auto relacionamento: quando um elemento da tabela está relacionado a outro, dentro da mesma tabela. Exemplo: um funcionário que está relacionado ao seu supervisor, que também é um funcionário.
- Relacionamento 1:1: Quando, em duas tabelas A e B, um elemento de A está relacionado a um e apenas um elemento de B e vice-versa. Exemplo: uma esposa está associada a um esposo (na teoria, funciona).
- Relacionamento 1:N: quando, em duas tabelas A e B, um elemento de A está relacionado a vários elementos de B e cada elemento de B está ligado a um e apenas um elemento de A. Exemplo: Cada mãe tem vários filhos, cada filho tem apenas uma mãe.
- Relacionamento N:M: Quando, em duas tabelas A e B, um elemento de A está ligado a vários elementos de B e um elemento de B está ligado à vários elementos de A. Exemplo: Cada aluno cursa várias disciplinas e cada disciplina tem vários alunos.
Observação: quando eu digo “tem” significa “pode ter de 0 a …”.
Pois bem, como resolver, no caso do N:M?
Simples.
Você precisa criar uma tabela associativa, que terá a missão de ter uma relação 1:N com as tabelas envolvidas.
Exemplo: A relação entre as tabelas A e B é N:M. Logo, cria-se a tabela A_B, que é 1:N com A e 1:N com B.
Isso vai permitir que você tenha a relação entre Ae A_B e A_B com B, permitindo que, a partir de qualquer dessas tabelas, você consiga encontrar os valores associados da outra.
Ficou mais claro?
1 curtida