Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Chave estrangeira

O tópico de chave primária eu entendi bem, só não compreendi como funciona a chave estrangeira, ainda tá meio abstrato na minha cabeça, alguém poderia me explicar?

1 resposta
solução!

Oi, Ana! Tudo bem?

A chave estrangeira é uma coluna ou conjunto de colunas em uma tabela que se refere à chave primária de outra tabela. Isso é feito para estabelecer uma relação entre as tabelas.

Por exemplo, suponha que você tenha uma tabela CLIENTE com uma chave primária id_cliente. Agora, você quer criar outra tabela PEDIDO que se relaciona com a tabela CLIENTE. Para isso, você pode criar uma chave estrangeira id_cliente na tabela PEDIDO, que se refere à chave primária id_cliente na tabela CLIENTE.

Para representar melhor o texto acima, observe a seguir a criação das tabelas CLIENTE e PEDIDO:

CREATE TABLE CLIENTE (
    id_cliente SERIAL PRIMARY KEY,
    nome VARCHAR(100),
    email VARCHAR(100)
);
CREATE TABLE PEDIDO (
    id_pedido SERIAL PRIMARY KEY,
    descricao VARCHAR(100),
    valor NUMERIC(10,2),
    id_cliente INTEGER REFERENCES CLIENTE (id_cliente)
);

Enquanto CLIENTE tem como chave primária id_cliente (que é do tipo SERIAL, permitindo um incremento sequencial deste campo durante a inserção de dados), o PEDIDO utiliza este mesmo campo como sua chave estrangeira. A criação da chave estrangeira foi feita na última linha da criação da tabela PEDIDO, em que:

  • id_cliente INTEGER cria e configura o campo id_cliente;
  • REFERENCES CLIENTE (id_cliente) indica que ele será uma chave estrangeira derivada da chave primária id_cliente, de CLIENTE.

Dessa forma, sempre que um novo pedido for adicionado à tabela PEDIDO, ele deve estar relacionado a um cliente existente na tabela CLIENTE. Isso garante a integridade dos dados e evita que informações inconsistentes sejam inseridas no banco de dados.

Espero que isso tenha ajudado a entender melhor como funciona a chave estrangeira, Ana! Se surgirem novas dúvidas, fico à disposição para ajudar.

Um forte abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!