Existem alguns tipos de associações entre tabelas que indicam que elas podem utilizar dados de outras.
Ex: Um astronauta tem várias naves, e para identificarmos de qual astronauta é aquela nave, usamos uma foreign key(chave estrangeira) e fazemos essa conexão!
Primeiro vamos criar um banco de dados dentro do postgres
$ CREATE DATABASE foreignkey
Vamos nos conectar a esse banco de dados para criarmos nossas tabelas
$ \\c foreignkey
Iniciamos criando a tabela “astronauta”
$ CREATE TABLE astronauta(
id SERIAL PRIMARY KEY NOT NULL,
nome VARCHAR(50) NOT NULL,
idade INT NOT NULL
);
Vamos agora criar a tabela “naves”, e colocar a foreignkey, para criar o primeiro relacionamento.
$ CREATE TABLE nave(
id SERIAL PRIMARY KEY NOT NULL,
nome VARCHAR(50) NOT NULL,
capacidade INT NOT NULL,
astronautaId INT,
CONSTRAINT fkAstronauta FOREIGN KEY(astronautaId) REFERENCES astronauta(id)
);
Agora vamos em “astronauta”, inserir um registro com nome e ID.
$ INSERT INTO astronauta(nome, idade)
VALUES (Armstrong, 44)
Dentro da nave, vamos inserir o id do astronauta, para que tenhamos a conexão.
$ INSERT INTO nave(nome, capacidade, astronautaid)
VALUES (Apollo11, 6, 1)
Agora que temos a associação entre tabelas, você não pode criar primeiro a nave, por que o valor id do astronauta não permite ser nulo, então sempre pé obrigatório ter um astronauta dono daquela nave!