- 1. Criação das tabelas
- 2. Adicionando chaves estrangeiras
Tabela
Copy
CREATE TABLE clientes (
id int PRIMARY KEY AUTO_INCREMENT,
nome varchar(128) NOT NULL,
email varchar(128),
cpf varchar(11) UNIQUE NOT NULL,
telefone varchar(11),
id_empresa int NOT NULL
);
Tabela
Copy
CREATE TABLE atendimentos (
id int PRIMARY KEY AUTO_INCREMENT,
descricao varchar(1024),
id_cliente int NOT NULL,
id_funcionario int NOT NULL,
id_empresa int NOT NULL
);
Tabela
Copy
CREATE TABLE funcionarios (
id int PRIMARY KEY AUTO_INCREMENT,
cpf varchar(11) UNIQUE NOT NULL,
nome varchar(128) NOT NULL,
telefone varchar(11),
id_empresa int NOT NULL,
id_cargo int NOT NULL,
id_usuario int
);
Tabela
Copy
CREATE TABLE ordens_servico (
id int PRIMARY KEY AUTO_INCREMENT,
data_abertura date,
data_conclusao date,
numero_serie varchar(256),
id_atendimento int NOT NULL,
id_responsavel int NOT NULL,
id_criador int NOT NULL,
id_modelo int,
id_empresa int,
id_categoria int
);
Tabela
Copy
CREATE TABLE servicos (
id int PRIMARY KEY AUTO_INCREMENT,
nome varchar(128),
descricao varchar(256),
valor decimal(15,2),
id_empresa int NOT NULL
);
Tabela
Copy
CREATE TABLE peca_servico (
id int PRIMARY KEY AUTO_INCREMENT,
id_servico int,
id_peca int,
quantidade int
);
Tabela
Copy
CREATE TABLE servico_os (
id int PRIMARY KEY AUTO_INCREMENT,
id_os int,
id_servico int
);
Tabela
Copy
CREATE TABLE peca_os (
id int PRIMARY KEY AUTO_INCREMENT,
id_os int,
id_peca int,
quantidade int
);
Tabela
Copy
CREATE TABLE empresa (
id int PRIMARY KEY AUTO_INCREMENT,
nome varchar(128),
descricao varchar(256),
endereco varchar(256),
cnpj varchar(14) UNIQUE NOT NULL,
margem_lucro float DEFAULT 1
);
Tabela
Copy
CREATE TABLE usuarios (
id int PRIMARY KEY AUTO_INCREMENT,
email varchar(256),
passwordHash varchar(512)
);
Tabela
Copy
CREATE TABLE cargos (
id int PRIMARY KEY AUTO_INCREMENT,
nome varchar(128)
);
Tabela
Copy
CREATE TABLE pecas (
id int PRIMARY KEY AUTO_INCREMENT,
nome varchar(128),
valor decimal(15,2),
quantidade_unitaria varchar(128),
ean13 varchar(13),
id_modelo int,
id_empresa int
);
Tabela
Copy
CREATE TABLE pedido_compra (
id int PRIMARY KEY AUTO_INCREMENT,
id_fornecedor int,
id_empresa int
);
Tabela
Copy
CREATE TABLE peca_pedido_compra (
id int PRIMARY KEY AUTO_INCREMENT,
id_pedido_compra int,
id_peca int,
quantidade int
);
Tabela
Copy
CREATE TABLE fornecedores (
id int PRIMARY KEY AUTO_INCREMENT,
nome varchar(128),
cnpj varchar(14) UNIQUE NOT NULL,
endereco varchar(256),
telefone varchar(11),
id_empresa int
);
Tabela
Copy
CREATE TABLE estoques (
id int PRIMARY KEY AUTO_INCREMENT,
nome varchar(128),
id_empresa int
);
Tabela
Copy
CREATE TABLE peca_estocada (
id int PRIMARY KEY AUTO_INCREMENT,
id_peca int,
id_estoque int,
quantidade int,
em_transito boolean,
id_tecnico int
);
Tabela
Copy
CREATE TABLE orcamentos (
id int PRIMARY KEY AUTO_INCREMENT,
data datetime,
id_os int,
id_empresa int,
valor decimal(15,2)
);
Tabela
Copy
CREATE TABLE item_orcamento (
id int PRIMARY KEY AUTO_INCREMENT,
id_orcamento int NOT NULL,
nome varchar(128),
descricao varchar(256),
tipo varchar(128),
quantidade int,
valor_unitario decimal(15,2),
valor_total decimal(15,2)
);
Tabela
Copy
CREATE TABLE categoria (
id int PRIMARY KEY AUTO_INCREMENT,
nome varchar(128)
);
Tabela
Copy
CREATE TABLE modelos (
id int PRIMARY KEY AUTO_INCREMENT,
nome varchar(128),
id_categoria int,
id_empresa int
);
Tabela
Copy
CREATE TABLE status (
id int PRIMARY KEY AUTO_INCREMENT,
nome varchar(128) NOT NULL
);
Tabela
Copy
CREATE TABLE status_os (
id int PRIMARY KEY AUTO_INCREMENT,
data datetime,
observacao varchar(512),
id_os int,
id_status int
);
Chaves estrangeiras
Copy
-- Tabela: clientes
ALTER TABLE clientes ADD FOREIGN KEY (id_empresa) REFERENCES empresa (id);
-- Tabela: atendimentos
ALTER TABLE atendimentos ADD FOREIGN KEY (id_cliente) REFERENCES clientes (id);
ALTER TABLE atendimentos ADD FOREIGN KEY (id_funcionario) REFERENCES funcionarios (id);
ALTER TABLE atendimentos ADD FOREIGN KEY (id_empresa) REFERENCES empresa (id);
-- Tabela: funcionarios
ALTER TABLE funcionarios ADD FOREIGN KEY (id_empresa) REFERENCES empresa (id);
ALTER TABLE funcionarios ADD FOREIGN KEY (id_cargo) REFERENCES cargos (id);
ALTER TABLE funcionarios ADD FOREIGN KEY (id_usuario) REFERENCES usuarios (id);
-- Tabela: ordens_servico
ALTER TABLE ordens_servico ADD FOREIGN KEY (id_atendimento) REFERENCES atendimentos (id);
ALTER TABLE ordens_servico ADD FOREIGN KEY (id_responsavel) REFERENCES funcionarios (id);
ALTER TABLE ordens_servico ADD FOREIGN KEY (id_criador) REFERENCES funcionarios (id);
ALTER TABLE ordens_servico ADD FOREIGN KEY (id_modelo) REFERENCES modelos (id);
ALTER TABLE ordens_servico ADD FOREIGN KEY (id_empresa) REFERENCES empresa (id);
ALTER TABLE ordens_servico ADD FOREIGN KEY (id_categoria) REFERENCES categoria (id);
-- Tabela: servicos
ALTER TABLE servicos ADD FOREIGN KEY (id_empresa) REFERENCES empresa (id);
-- Tabela: peca_servico
ALTER TABLE peca_servico ADD FOREIGN KEY (id_servico) REFERENCES servicos (id);
ALTER TABLE peca_servico ADD FOREIGN KEY (id_peca) REFERENCES pecas (id);
-- Tabela: servico_os
ALTER TABLE servico_os ADD FOREIGN KEY (id_os) REFERENCES ordens_servico (id);
ALTER TABLE servico_os ADD FOREIGN KEY (id_servico) REFERENCES servicos (id);
-- Tabela: peca_os
ALTER TABLE peca_os ADD FOREIGN KEY (id_os) REFERENCES ordens_servico (id);
ALTER TABLE peca_os ADD FOREIGN KEY (id_peca) REFERENCES pecas (id);
-- Tabela: pecas
ALTER TABLE pecas ADD FOREIGN KEY (id_modelo) REFERENCES modelos (id);
ALTER TABLE pecas ADD FOREIGN KEY (id_empresa) REFERENCES empresa (id);
-- Tabela: pedido_compra
ALTER TABLE pedido_compra ADD FOREIGN KEY (id_fornecedor) REFERENCES fornecedores (id);
ALTER TABLE pedido_compra ADD FOREIGN KEY (id_empresa) REFERENCES empresa (id);
-- Tabela: peca_pedido_compra
ALTER TABLE peca_pedido_compra ADD FOREIGN KEY (id_pedido_compra) REFERENCES pedido_compra (id);
ALTER TABLE peca_pedido_compra ADD FOREIGN KEY (id_peca) REFERENCES pecas (id);
-- Tabela: fornecedores
ALTER TABLE fornecedores ADD FOREIGN KEY (id_empresa) REFERENCES empresa (id);
-- Tabela: estoques
ALTER TABLE estoques ADD FOREIGN KEY (id_empresa) REFERENCES empresa (id);
-- Tabela: peca_estocada
ALTER TABLE peca_estocada ADD FOREIGN KEY (id_peca) REFERENCES pecas (id);
ALTER TABLE peca_estocada ADD FOREIGN KEY (id_estoque) REFERENCES estoques (id);
ALTER TABLE peca_estocada ADD FOREIGN KEY (id_tecnico) REFERENCES funcionarios (id);
-- Tabela: orcamentos
ALTER TABLE orcamentos ADD FOREIGN KEY (id_os) REFERENCES ordens_servico (id);
ALTER TABLE orcamentos ADD FOREIGN KEY (id_empresa) REFERENCES empresa (id);
-- Tabela: item_orcamento
ALTER TABLE item_orcamento ADD FOREIGN KEY (id_orcamento) REFERENCES orcamentos (id);
-- Tabela: modelos
ALTER TABLE modelos ADD FOREIGN KEY (id_categoria) REFERENCES categoria (id);
ALTER TABLE modelos ADD FOREIGN KEY (id_empresa) REFERENCES empresa (id);
-- Tabela: status_os
ALTER TABLE status_os ADD FOREIGN KEY (id_os) REFERENCES ordens_servico (id);
ALTER TABLE status_os ADD FOREIGN KEY (id_status) REFERENCES status (id);