1
resposta

Resolução Exercício - Criando as tabelas da Insight Places

CREATE DATABASE insight_places;

USE insight_places;

CREATE TABLE proprietarios (
    proprietario_id VARCHAR(255) NOT NULL PRIMARY KEY,
    nome VARCHAR(255) NOT NULL,
    cpf_cnpj VARCHAR(20) NOT NULL,
    contato VARCHAR(255)
);

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

CREATE TABLE enderecos (
    endereco_id VARCHAR(255) NOT NULL 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) NOT NULL PRIMARY KEY,
    tipo VARCHAR(50),
    endereco_id VARCHAR(255) NOT NULL,
    proprietario_id VARCHAR(255) NOT NULL,
    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) NOT NULL PRIMARY KEY,
    cliente_id VARCHAR(255) NOT NULL,
    hospedagem_id VARCHAR(255) NOT NULL,
    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) NOT NULL 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á, Carlos! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de chaves estrangeiras para relacionar tabelas com MySQL, utilizou muito bem a definição de tipos de dados para garantir consistência e ainda compreendeu a importância das restrições PRIMARY KEY e FOREIGN KEY para manter a integridade referencial.

Uma dica interessante para o futuro é aplicar índices em colunas que serão frequentemente consultadas. Assim:

CREATE INDEX idx_cliente_nome
ON clientes (nome);

Isso faz com que buscas por clientes sejam mais rápidas, melhorando a performance das consultas.

Sugestão de conteúdo para você mergulhar ainda mais no 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!