Files
dbTrabai/1_modeloBase.sql
T
IdalecioSch 8c688729db sss
2026-06-24 18:46:44 -03:00

69 lines
1.9 KiB
SQL

CREATE TYPE tipo_contato AS ENUM ('email', 'telefone', 'celular', 'whatsapp');
CREATE TABLE cliente (
id SERIAL PRIMARY KEY,
cpf CHAR(11) NOT NULL,
nome VARCHAR(50) NOT NULL
);
CREATE TABLE cor (
id SERIAL PRIMARY KEY,
descricao VARCHAR(20) NOT NULL,
fundo BOOLEAN NOT NULL,
frase BOOLEAN NOT NULL
);
CREATE TABLE material (
id SERIAL PRIMARY KEY,
descricao VARCHAR(20) NOT NULL,
valor_letra DECIMAL(10,2) NOT NULL,
custo DECIMAL(10,2) NOT NULL
);
CREATE TABLE desconto (
id SERIAL PRIMARY KEY,
valor_minimo DECIMAL(10,2) NOT NULL,
valor_maximo DECIMAL(10,2) NOT NULL,
percentual DECIMAL(5,2) NOT NULL
);
CREATE TABLE contato (
id SERIAL PRIMARY KEY,
cliente_id INTEGER NOT NULL,
tipo tipo_contato NOT NULL,
informacao VARCHAR(50) NOT NULL,
CONSTRAINT fk_contato_cliente FOREIGN KEY (cliente_id) REFERENCES cliente(id)
);
CREATE TABLE placa (
id SERIAL PRIMARY KEY,
largura INTEGER NOT NULL,
altura INTEGER NOT NULL,
material_id INTEGER NOT NULL,
CONSTRAINT fk_placa_material FOREIGN KEY (material_id) REFERENCES material(id)
);
CREATE TABLE encomenda (
id SERIAL PRIMARY KEY,
data TIMESTAMP NOT NULL,
entrega TIMESTAMP NOT NULL,
cliente_id INTEGER NOT NULL,
desconto_id INTEGER NOT NULL,
CONSTRAINT fk_encomenda_cliente FOREIGN KEY (cliente_id) REFERENCES cliente(id),
CONSTRAINT fk_encomenda_desconto FOREIGN KEY (desconto_id) REFERENCES desconto(id)
);
CREATE TABLE item (
id SERIAL PRIMARY KEY,
encomenda_id INTEGER NOT NULL,
placa_id INTEGER NOT NULL,
frase VARCHAR(50) NOT NULL,
cor_fundo_id INTEGER NOT NULL,
cor_frase_id INTEGER NOT NULL,
CONSTRAINT fk_item_encomenda FOREIGN KEY (encomenda_id) REFERENCES encomenda(id),
CONSTRAINT fk_item_placa FOREIGN KEY (placa_id) REFERENCES placa(id),
CONSTRAINT fk_item_cor_fundo FOREIGN KEY (cor_fundo_id) REFERENCES cor(id),
CONSTRAINT fk_item_cor_frase FOREIGN KEY (cor_frase_id) REFERENCES cor(id)
);