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

[Projeto] Criei um mini mundo de loja de vídeo game

Desenvolvi as Query's do meu mini mundo de vídeo game. Segue o código abaixo:

CREATE DATABASE loja_de_video_game;

USE loja_de_video_game;

CREATE TABLE LOJA (
    ID_LOJA INT NOT NULL,
    NOME VARCHAR(50) NOT NULL,
    TELEFONE VARCHAR(11) NOT NULL,
    ID_ENDERECO INT NOT NULL,
    ID_PROPRIETARIO INT NOT NULL,
    PRIMARY KEY (ID_LOJA)
);

ALTER TABLE LOJA ADD CONSTRAINT RL_LOJA_ENDERECO
FOREIGN KEY (ID_ENDERECO)  
REFERENCES ENDERECO (ID_ENDERECO)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

ALTER TABLE LOJA ADD CONSTRAINT RL_LOJA_PROPRIETARIO
FOREIGN KEY (ID_PROPRIETARIO)  
REFERENCES PROPRIETARIO (ID_PROPRIETARIO)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

INSERT INTO LOJA VALUES
(1, "Gamer", "21564876756", 1, 1);

CREATE TABLE VENDEDOR (
    ID_VENDEDOR INT NOT NULL,
    ID_INFORMACOES_PESSOAIS INT NOT NULL,
    SALARIO DECIMAL(6, 2) NOT NULL,
    QUANTIDADE_VENDIDA INT NOT NULL,
    PRIMARY KEY (ID_VENDEDOR)
);

ALTER TABLE VENDEDOR ADD CONSTRAINT RL_VENDEDOR_INFORMACOES
FOREIGN KEY (ID_INFORMACOES_PESSOAIS)  
REFERENCES INFORMACOES_PESSOAIS (ID_INFORMACOES_PESSOAIS)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

INSERT INTO VENDEDOR VALUES
(1, 1, 1800.00, 7);

CREATE TABLE VENDA (
    ID_VENDA INT NOT NULL,
    ID_VENDEDOR INT NOT NULL,
    ID_PRODUTO INT NOT NULL,
    ID_CLIENTE INT NOT NULL,
    DATA_COMPRA DATETIME NOT NULL,
    PRIMARY KEY (ID_VENDA)
);

ALTER TABLE VENDA ADD CONSTRAINT RL_VENDA_VENDEDOR
FOREIGN KEY (ID_VENDEDOR)  
REFERENCES VENDEDOR (ID_VENDEDOR)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

ALTER TABLE VENDA ADD CONSTRAINT RL_VENDA_PRODUTO
FOREIGN KEY (ID_PRODUTO)  
REFERENCES PRODUTO (ID_PRODUTO)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

ALTER TABLE VENDA ADD CONSTRAINT RL_VENDA_CLIENTE
FOREIGN KEY (ID_CLIENTE)  
REFERENCES CLIENTE (ID_CLIENTE)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

INSERT INTO VENDA VALUES
(1, 1, 1, 1, "2023-11-30 19:21:45");

CREATE TABLE CLIENTE (
    ID_CLIENTE INT NOT NULL,
    ID_INFORMACOES_PESSOAIS INT NOT NULL,
    PRIMARY KEY (ID_CLIENTE)
);

INSERT INTO CLIENTE VALUES
(1, 2);

CREATE TABLE PRODUTO (
    ID_PRODUTO INT NOT NULL,
    NOME VARCHAR(100) NOT NULL,
    PRECO DECIMAL(6, 2) NOT NULL,
    QUANTIDADE INT NOT NULL,
    DESCRICAO VARCHAR(300) NOT NULL,
    PRIMARY KEY (ID_PRODUTO)
);

INSERT INTO PRODUTO VALUES
(1, "GTA V", 130.00, 13, "Jogo de vídeo game GTA V."),
(2, "God of War", 100.00, 18, "Jogo de vídeo game God of War."),
(3, "Tomb Raider", 80.00, 13, "Jogo de vídeo game Tomb Raider.");

CREATE TABLE ENDERECO (
    ID_ENDERECO INT NOT NULL,
    PAIS VARCHAR(100) NOT NULL,
    CIDADE VARCHAR(100) NOT NULL,
    ESTADO VARCHAR(100) NOT NULL,
    CEP VARCHAR(8) NOT NULL,
    BAIRRO VARCHAR(100) NOT NULL,
    RUA VARCHAR(100) NOT NULL,
    NUMERO VARCHAR(50) NOT NULL,
    PRIMARY KEY (ID_ENDERECO)
);

INSERT INTO ENDERECO VALUES
(1, "Brasil", "Rio de Janeiro", "Rio de Janeiro", "23052470", "Campo Grande", "Praça do Imigrante", "302");

CREATE TABLE PROPRIETARIO (
    ID_PROPRIETARIO INT NOT NULL,
    CNPJ VARCHAR(14) NOT NULL,
    ID_INFORMACOES_PESSOAIS INT NOT NULL,
    PRIMARY KEY (ID_PROPRIETARIO)
);

INSERT INTO PROPRIETARIO VALUES
(1, "62607053000122", 3);

CREATE TABLE INFORMACOES_PESSOAIS (
    ID_INFORMACOES_PESSOAIS INT NOT NULL,
    NOME VARCHAR(50) NOT NULL,
    SOBRENOME VARCHAR(50) NOT NULL,
    NOME_SOCIAL VARCHAR(50),
    GENERO CHAR(1) NOT NULL,
    DATA_NASCIMENTO DATE NOT NULL,
    CPF VARCHAR(11) NOT NULL,
    PRIMARY KEY (ID_INFORMACOES_PESSOAIS)
);

INSERT INTO INFORMACOES_PESSOAIS VALUES
(1, "Roberto", "Nonato", "", 'M', "1997-03-23", "71159030006"),
(2, "Júlio", "Gomes", "", 'M', "1996-05-17", "30087010003"),
(3, "Lúcio", "Flávio", "", 'M', "1993-07-11", "36182029030");

Eu sei que visualizar mini mundo como se fosse uma UML fica bem melhor, mas não sei se tem como fazer isso no MySQL. Acabei desenvolvendo o mini mundo nele mesmo. Mas e ae, a minha normalização ficou boa?

1 resposta
solução!

Oii, Lucas! Tudo joia?

Gostei muito do seu projeto, você utilizou muito bem as chaves primárias e estrangeiras, os dados estão bem definidos e a normalização está seguindo as boas práticas. É importante analisar o seu modelo de dados para verificar se ele está bem estruturado e livre de anomalias.

E não posso deixar de comentar o bom gosto dos jogos escolhidos, God Of War principalmente, rsrs!

Você está no caminho certo e vem demonstrando bastante evolução em seu aprendizado

Sobre o MySQL, é possível, mas, é preciso utilizar ferramentas externas que possuem recursos para criar diagramas. As ferramentas que podem ser usadas são: MySQL Workbench, DBDesigner ou ERDPlus.

Continue interagindo aqui no fórum suas dúvidas, projetos e feedbacks.

Bons estudos, Lucas!