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!

  1. Primeiro vamos criar um banco de dados dentro do postgres

    $ CREATE DATABASE foreignkey
    
  2. Vamos nos conectar a esse banco de dados para criarmos nossas tabelas

    $ \\c foreignkey
    
  3. Iniciamos criando a tabela “astronauta”

    $ CREATE TABLE astronauta(
    	id SERIAL PRIMARY KEY NOT NULL,
    	nome VARCHAR(50) NOT NULL,
    	idade INT NOT NULL
    	
    );
    
  4. 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)
    );
    
  5. Agora vamos em “astronauta”, inserir um registro com nome e ID.

    $ INSERT INTO astronauta(nome, idade)
    	VALUES (Armstrong, 44)
    
  6. 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)
    
  7. 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!