Nos cursos anteriores, eu mantive o mesmo projeto que se consiste em modelar um mini mundo de podologia, com isso eu decidi traze-lo para o SGBD e cria-lo como uma base de dados, partindo dos conhecimentos obtidos neste curso. Abaixo estão os códigos feitos em SQL.
CREATE SCHEMA LOJA_DE_PODOLOGIA;
USE LOJA_DE_PODOLOGIA;
CREATE TABLE LOJA (
ID_LOJA INT NOT NULL,
ID_ENDERECO INT NOT NULL,
NOME VARCHAR(50) NOT NULL,
TELEFONE VARCHAR(11) NOT NULL,
CNPJ VARCHAR(14) 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;
CREATE TABLE SERVICO (
ID_SERVICO INT NOT NULL,
NOME VARCHAR(50) NOT NULL,
PRECO DECIMAL(3, 2) NOT NULL,
ID_LOJA INT NOT NULL,
PRIMARY KEY (ID_SERVICO)
);
ALTER TABLE SERVICO ADD CONSTRAINT RL_SERVICO_LOJA
FOREIGN KEY (ID_LOJA)
REFERENCES LOJA (ID_LOJA)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
CREATE TABLE CUTELARIA_SERVICO (
ID_CUTELARIA INT NOT NULL,
ID_SERVICO INT NOT NULL,
DATA_SERVICO DATE NOT NULL,
HORARIO_SERVICO TIMESTAMP NOT NULL,
PRIMARY KEY (ID_CUTELARIA, ID_SERVICO)
);
ALTER TABLE CUTELARIA_SERVICO ADD CONSTRAINT RL_CUTELARIA_SERVICO
FOREIGN KEY (ID_SERVICO)
REFERENCES SERVICO (ID_SERVICO)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
CREATE TABLE CUTELARIA (
ID_CUTELARIA INT NOT NULL,
ID_ENDERECO INT NOT NULL,
ID_CONTATO INT NOT NULL,
NOME VARCHAR(50) NOT NULL,
CNPJ VARCHAR(14) NOT NULL,
PRIMARY KEY (ID_CUTELARIA)
);
ALTER TABLE CUTELARIA ADD CONSTRAINT RL_CUTELARIA_ENDERECO
FOREIGN KEY (ID_ENDERECO)
REFERENCES ENDERECO (ID_ENDERECO)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE CUTELARIA ADD CONSTRAINT RL_CUTELARIA_CONTATO
FOREIGN KEY (ID_CONTATO)
REFERENCES CONTATO (ID_CONTATO)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE CUTELARIA_SERVICO ADD CONSTRAINT RL_CUTELARIA
FOREIGN KEY (ID_CUTELARIA)
REFERENCES CUTELARIA (ID_CUTELARIA)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
CREATE TABLE PRODUTO (
ID_PRODUTO INT NOT NULL,
ID_LOJA INT NOT NULL,
NOME VARCHAR(50) NOT NULL,
PRECO DECIMAL(5, 2) NOT NULL,
PRIMARY KEY (ID_PRODUTO)
);
ALTER TABLE PRODUTO ADD CONSTRAINT RL_PRODUTO_LOJA
FOREIGN KEY (ID_LOJA)
REFERENCES LOJA (ID_LOJA)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
CREATE TABLE REVENDEDORA_PRODUTO (
ID_REVENDEDORA INT NOT NULL,
ID_PRODUTO INT NOT NULL,
DATA_COMPRA DATE NOT NULL,
PRIMARY KEY (ID_REVENDEDORA, ID_PRODUTO)
);
CREATE TABLE REVENDEDORA (
ID_REVENDEDORA INT NOT NULL,
ID_ENDERECO INT NOT NULL,
ID_CONTATO INT NOT NULL,
NOME VARCHAR(50) NOT NULL,
CNPJ VARCHAR(50) NOT NULL,
PRIMARY KEY (ID_REVENDEDORA)
);
ALTER TABLE REVENDEDORA ADD CONSTRAINT RL_REVENDEDORA_ENDERECO
FOREIGN KEY (ID_ENDERECO)
REFERENCES ENDERECO (ID_ENDERECO)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE REVENDEDORA ADD CONSTRAINT RL_REVENDEDORA_CONTATO
FOREIGN KEY (ID_REVENDEDORA)
REFERENCES CONTATO (ID_CONTATO)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE REVENDEDORA_PRODUTO ADD CONSTRAINT RL_REVENDEDORA_PRODUTO
FOREIGN KEY (ID_PRODUTO)
REFERENCES PRODUTO (ID_PRODUTO)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE REVENDEDORA_PRODUTO ADD CONSTRAINT RL_REVENDEDORA
FOREIGN KEY (ID_REVENDEDORA)
REFERENCES REVENDEDORA (ID_REVENDEDORA)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
A outra parte estará nas respostas desse tópico.
Alguma sugestão para melhora?