1
resposta

Criando as tabelas da Insight Places

USE insight_places;

CREATE TABLE clientes (
    cliente_id VARCHAR(255) PRIMARY KEY,
    nome VARCHAR(255),
    cpf VARCHAR(14),
    contato VARCHAR(255)
);

CREATE TABLE enderecos (
    endereco_id VARCHAR(255) PRIMARY KEY,
    rua VARCHAR(255),
    numero INT,
    bairro VARCHAR(255),
    cidade VARCHAR(255),
    estado VARCHAR(2),
    cep VARCHAR(10)
);

CREATE TABLE hospedagens (
    hospedagem_id VARCHAR(255) PRIMARY KEY,
    tipo VARCHAR(50),
    endereco_id VARCHAR(255),
    proprietario_id VARCHAR(255),
        ativo bool,
    FOREIGN KEY (endereco_id) REFERENCES enderecos(endereco_id),
    FOREIGN KEY (proprietario_id) REFERENCES proprietarios(proprietario_id)
);

CREATE TABLE alugueis (
    aluguel_id VARCHAR(255) PRIMARY KEY,
    cliente_id VARCHAR(255),
    hospedagem_id VARCHAR(255),
    data_inicio DATE,
    data_fim DATE,
    preco_total DECIMAL(10, 2),
    FOREIGN KEY (cliente_id) REFERENCES clientes(cliente_id),
    FOREIGN KEY (hospedagem_id) REFERENCES hospedagens(hospedagem_id)
);

CREATE TABLE avaliacoes (
avaliacao_id VARCHAR(255) PRIMARY KEY,
cliente_id VARCHAR(255),
hospedagem_id VARCHAR(255),
nota INT,
comentario TEXT,
FOREIGN KEY (cliente_id) REFERENCES clientes(cliente_id),
FOREIGN KEY (hospedagem_id) REFERENCES hospedagens(hospedagem_id)
);
1 resposta

Olá, Vanderlei! Como vai?

Mandou muito bem na resolução da atividade!

Observei que você explorou o uso de chaves primárias e estrangeiras para estruturar o relacionamento entre tabelas, utilizou muito bem o tipo VARCHAR com tamanhos adequados para garantir flexibilidade nos dados e ainda compreendeu a importância do uso da FOREIGN KEY para manter a integridade referencial entre entidades como clientes, hospedagens e avaliações.

Uma dica interessante para o futuro é usar ON DELETE CASCADE nas suas FOREIGN KEYs quando quiser que os registros relacionados sejam automaticamente removidos ao excluir o registro principal. Dessa forma:

FOREIGN KEY (cliente_id) REFERENCES clientes(cliente_id) ON DELETE CASCADE

Resultado: Ao excluir um cliente, todos os registros de aluguel e avaliação relacionados a ele também serão removidos automaticamente.

Isso faz com que o banco de dados se mantenha limpo e consistente sem necessidade de múltiplas exclusões manuais.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!