E-Commerce-1/db-info/ecomerceDB-MYSQL.sql

396 lines
13 KiB
SQL

CREATE TABLE `usuarios` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`saldo` decimal(10,2) NOT NULL,
`valor_gasto` decimal(10,2) NOT NULL,
`login` varchar(15) NOT NULL,
`senha` varchar(255) NOT NULL,
`token` varchar(64) NOT NULL,
`email` varchar(32) NOT NULL,
`codigo_email` int NOT NULL,
`status` int NOT NULL,
`nivel` int NOT NULL,
`ultima_atividade` datetime NOT NULL
);
CREATE TABLE `clientes` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`nome` varchar(32) NOT NULL,
`email` varchar(32) NOT NULL,
`saldo` decimal(10,2) NOT NULL,
`valor_gasto` decimal(10,2),
`slug` varchar(15) NOT NULL,
`celular` varchar(15) NOT NULL,
`codigo_email` tinyint NOT NULL,
`codigo_sms` tinyint NOT NULL,
`documento` int NOT NULL,
`observacao` text NOT NULL,
`insento_fiscal` tinyint NOT NULL,
`status` int NOT NULL,
`senha` varchar(255) NOT NULL,
`token` varchar(64) NOT NULL,
`ultima_atividade` datetime NOT NULL,
`email_marketing` tinyint NOT NULL,
`cartao_presente_id` int NOT NULL
);
CREATE TABLE `produtos` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`nome` varchar(18) NOT NULL,
`preco` decimal(10,0) NOT NULL,
`estoque` int NOT NULL,
`categoria_id` int NOT NULL,
`status` int NOT NULL,
`img` varchar(30) NOT NULL,
`descricao` text NOT NULL,
`tipo_produto` int NOT NULL,
`peso` float NOT NULL,
`pais_origem` varchar(12) NOT NULL,
`marca` varchar(18) NOT NULL,
`data_cadastro_produto` datetime NOT NULL
);
CREATE TABLE `categorias` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`nome` varchar(18) NOT NULL,
`descricao` text NOT NULL
);
CREATE TABLE `carrinho` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`cliente_id` int NOT NULL,
`quantidade` int NOT NULL,
`preco` decimal(10,2) NOT NULL,
`data` datetime NOT NULL,
`status` int NOT NULL
);
CREATE TABLE `fornecedores` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`nome` varchar(18) NOT NULL,
`descricao` text NOT NULL,
`documento` int NOT NULL,
`endereco` varchar(32) NOT NULL,
`numero` int NOT NULL,
`bairro` varchar(32) NOT NULL,
`complemento` varchar(15),
`cep` int NOT NULL,
`cidade` varchar(32) NOT NULL,
`estado` varchar(15) NOT NULL,
`nome_empresa` varchar(18) NOT NULL
);
CREATE TABLE `vendas` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`data_venda` datetime NOT NULL,
`valor` decimal(10,2) NOT NULL,
`cliente_id` int NOT NULL,
`nome_destinatario` varchar(32) NOT NULL,
`metodo_pagamento` varchar(18) NOT NULL,
`desconto` decimal(10,2) NOT NULL,
`lucro_bruto` decimal(10,2),
`comentarios_cliente` text,
`end_to_end` varchar(32) NOT NULL,
`ip_cliente` varchar(32),
`status` int NOT NULL,
`cartao_presente_id` int NOT NULL
);
CREATE TABLE `venda_detalhes` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`vendas_id` int NOT NULL,
`nome_produto` varchar(18) NOT NULL,
`preco_unitario` decimal(10,2) NOT NULL,
`quantidade` int NOT NULL,
`endereco_entrega` varchar(32) NOT NULL,
`numero_entrega` int NOT NULL,
`bairro_entrega` varchar(32) NOT NULL,
`complemento_entrega` varchar(15),
`cep_entrega` int NOT NULL,
`cidade_entrega` varchar(32) NOT NULL,
`estado_entrega` varchar(15) NOT NULL,
`metodo_envio` varchar(32) NOT NULL,
`nome_transportadora` varchar(32) NOT NULL,
`custo_envio` decimal(10,2) NOT NULL,
`codigo_rastreio` int NOT NULL
);
CREATE TABLE `vendas_pagamentos` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`vendas_id` int NOT NULL,
`numero_cartao` varchar(32),
`nome_titular_cartao` varchar(32),
`data_vencimento_cartao` date,
`codigo_seguranca_cartao` int,
`cpf_titular_cartao` int,
`bandeira_cartao` int,
`codigo_barras_boletos` int,
`numero_parcelas` int,
`valor_parcelas` decimal(10,2),
`juros` decimal(10,2)
);
CREATE TABLE `vendas_abandonadas` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`vendas_id` int NOT NULL,
`produto_id` int NOT NULL,
`data_hora` datetime NOT NULL,
`motivo_abandono` text,
`valor_total` decimal(10,2) NOT NULL,
`forma_pagamento` varchar(32) NOT NULL,
`codigo_desconto` int,
`observacoes` text
);
CREATE TABLE `transportadora` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`nome_transportadora` varchar(32) NOT NULL,
`documento_cnpj` int NOT NULL,
`endereco` varchar(32) NOT NULL,
`numero` int NOT NULL,
`bairro` varchar(32) NOT NULL,
`complemento` varchar(15),
`cep` int NOT NULL,
`cidade` varchar(32) NOT NULL,
`estado` varchar(15) NOT NULL,
`telefone` varchar(32) NOT NULL,
`website` varchar(32) NOT NULL,
`email` varchar(32) NOT NULL,
`custo_frete` decimal(10,2) NOT NULL,
`estados_atuacao` varchar(32) NOT NULL,
`status` int NOT NULL
);
CREATE TABLE `compras` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`data_compra` datetime NOT NULL,
`fornecedores_id` int NOT NULL,
`valor_total` decimal(10,2) NOT NULL,
`status` int NOT NULL,
`metodo_pagamento` int NOT NULL,
`data_entrega` datetime NOT NULL,
`numero_pedido` varchar(32) NOT NULL,
`observacoes` text,
`nome_produto` varchar(32) NOT NULL
);
CREATE TABLE `descontos` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`codigo_desconto` int NOT NULL,
`tipo_desconto` varchar(32) NOT NULL,
`valor_desconto` decimal(10,2) NOT NULL,
`data_inicio` datetime NOT NULL,
`data_fim` datetime NOT NULL,
`status` int NOT NULL,
`descricao` text,
`uso_unico` int NOT NULL,
`valor_minimo` decimal(10,2)
);
CREATE TABLE `taxas` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`nome` varchar(32) NOT NULL,
`tipo_taxa` varchar(10) NOT NULL,
`valor` decimal(10,2) NOT NULL,
`estado` varchar(10),
`cidade` varchar(10),
`status` int(10),
`descricao` text,
`data_inicio` datetime,
`data_fim` datetime
);
CREATE TABLE `tributos` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`nome` varchar(32) NOT NULL,
`tipo_tributo` enum('Federal','Estadual','Municipal') NOT NULL,
`alicota` decimal(10,2) NOT NULL,
`base_calculo` enum('valor total venda','valor produto') NOT NULL,
`codigo_tributo` varchar(20) NOT NULL,
`status` int(10) NOT NULL,
`descricao` text,
`data_inicio` datetime,
`data_fim` datetime,
`regras_aplicacao` text
);
CREATE TABLE `cartao_presente` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`codigo` varchar(50) NOT NULL,
`valor` decimal(10,2) NOT NULL,
`data_emissao` datetime NOT NULL,
`data_validade` datetime NOT NULL,
`status` enum('ativo','inativo','usado','expirado','cancelado') NOT NULL DEFAULT 'ativo',
`nome_destinatario` varchar(32) NOT NULL,
`mensagem_presente` text,
`data_ativacao` datetime NOT NULL,
`regras_uso` text,
`historico_uso` JSON
);
CREATE TABLE `clientes_address` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`cliente_id` int NOT NULL,
`endereco` varchar(32) NOT NULL,
`numero` int NOT NULL,
`bairro` varchar(32) NOT NULL,
`complemento` varchar(15),
`cep` int NOT NULL,
`cidade` varchar(32) NOT NULL,
`estado` varchar(15) NOT NULL
);
CREATE TABLE `clientes_produtos` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`cliente_id` int NOT NULL,
`produto_id` int NOT NULL
);
CREATE TABLE `carrinho_itens` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`carrinho_id` int NOT NULL,
`produto_id` int NOT NULL
);
CREATE TABLE `fornecedores_produtos` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`fornecedor_id` int NOT NULL,
`produto_id` int NOT NULL,
`preco` decimal(10,2) NOT NULL,
`prazo_entrega` datetime NOT NULL
);
CREATE TABLE `vendas_produtos` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`vendas_id` int NOT NULL,
`produto_id` int NOT NULL,
`qtd_vendidos` int NOT NULL
);
CREATE TABLE `vendas_transportadoras` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`vendas_id` int NOT NULL,
`transportadora_id` int NOT NULL,
`data_inicio` datetime NOT NULL,
`data_fim` datetime NOT NULL,
`status` int NOT NULL
);
CREATE TABLE `compras_produtos` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`compras_id` int NOT NULL,
`produtos_id` int NOT NULL,
`quantidade_produto` int NOT NULL
);
CREATE TABLE `descontos_produtos` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`desconto_id` int NOT NULL,
`produto_id` int NOT NULL
);
CREATE TABLE `descontos_categorias` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`desconto_id` int NOT NULL,
`categoria_id` int NOT NULL
);
CREATE TABLE `taxas_produtos` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`taxa_id` int NOT NULL,
`produto_id` int NOT NULL
);
CREATE TABLE `taxas_categorias` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`taxa_id` int NOT NULL,
`categoria_id` int NOT NULL
);
CREATE TABLE `taxas_vendas` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`vendas_id` int NOT NULL,
`taxas_id` int NOT NULL,
`valor_taxa_item` decimal(10,2) NOT NULL
);
CREATE TABLE `tributos_taxas` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`tributo_id` int NOT NULL,
`taxas_id` int NOT NULL
);
CREATE TABLE `tributos_vendas` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`tributo_id` int NOT NULL,
`vendas_id` int NOT NULL,
`valor_tributo_item` decimal(10,2) NOT NULL
);
ALTER TABLE `clientes_address` ADD CONSTRAINT `clientes_address_fk1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`);
ALTER TABLE `produtos` ADD CONSTRAINT `produtos_fk1` FOREIGN KEY (`categoria_id`) REFERENCES `categorias` (`id`);
ALTER TABLE `carrinho` ADD CONSTRAINT `carrinho_fk1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`);
ALTER TABLE `clientes_produtos` ADD CONSTRAINT `clientes_produtos_fk1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`);
ALTER TABLE `clientes_produtos` ADD CONSTRAINT `clientes_produtos_fk2` FOREIGN KEY (`produto_id`) REFERENCES `produtos` (`id`);
ALTER TABLE `carrinho_itens` ADD CONSTRAINT `carrinho_itens_fk1` FOREIGN KEY (`carrinho_id`) REFERENCES `carrinho` (`id`);
ALTER TABLE `carrinho_itens` ADD CONSTRAINT `carrinho_itens_fk2` FOREIGN KEY (`produto_id`) REFERENCES `produtos` (`id`);
ALTER TABLE `fornecedores_produtos` ADD CONSTRAINT `fornecedor_produtos_fk1` FOREIGN KEY (`fornecedor_id`) REFERENCES `fornecedores` (`id`);
ALTER TABLE `fornecedores_produtos` ADD CONSTRAINT `fornecedor_produtos_fk2` FOREIGN KEY (`produto_id`) REFERENCES `produtos` (`id`);
ALTER TABLE `vendas` ADD CONSTRAINT `vendas_clientes_fk1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`);
ALTER TABLE `vendas_produtos` ADD CONSTRAINT `vendas_produtos_fk1` FOREIGN KEY (`produto_id`) REFERENCES `produtos` (`id`);
ALTER TABLE `vendas_produtos` ADD CONSTRAINT `vendas_produtos_fk2` FOREIGN KEY (`vendas_id`) REFERENCES `vendas` (`id`);
ALTER TABLE `venda_detalhes` ADD CONSTRAINT `venda_detalhes_fk1` FOREIGN KEY (`vendas_id`) REFERENCES `vendas` (`id`);
ALTER TABLE `vendas_pagamentos` ADD CONSTRAINT `vendas_pagamentos_fk1` FOREIGN KEY (`vendas_id`) REFERENCES `vendas` (`id`);
ALTER TABLE `vendas_transportadoras` ADD CONSTRAINT `vendas_transportadoras_fk1` FOREIGN KEY (`transportadora_id`) REFERENCES `transportadora` (`id`);
ALTER TABLE `vendas_transportadoras` ADD CONSTRAINT `vendas_transportadoras_fk2` FOREIGN KEY (`vendas_id`) REFERENCES `vendas` (`id`);
ALTER TABLE `vendas_abandonadas` ADD CONSTRAINT `vendas_abandonadas_fk1` FOREIGN KEY (`vendas_id`) REFERENCES `vendas` (`id`);
ALTER TABLE `compras` ADD CONSTRAINT `compras_fornecedores_fk1` FOREIGN KEY (`fornecedores_id`) REFERENCES `fornecedores` (`id`);
ALTER TABLE `compras_produtos` ADD CONSTRAINT `compras_produtos_fk1` FOREIGN KEY (`compras_id`) REFERENCES `compras` (`id`);
ALTER TABLE `compras_produtos` ADD CONSTRAINT `compras_produtos_fk2` FOREIGN KEY (`produtos_id`) REFERENCES `produtos` (`id`);
ALTER TABLE `descontos_produtos` ADD CONSTRAINT `descontos_produtos_fk1` FOREIGN KEY (`desconto_id`) REFERENCES `descontos` (`id`);
ALTER TABLE `descontos_produtos` ADD CONSTRAINT `descontos_produtos_fk2` FOREIGN KEY (`produto_id`) REFERENCES `produtos` (`id`);
ALTER TABLE `descontos_categorias` ADD CONSTRAINT `descontos_categorias_fk1` FOREIGN KEY (`desconto_id`) REFERENCES `descontos` (`id`);
ALTER TABLE `descontos_categorias` ADD CONSTRAINT `descontos_categorias_fk2` FOREIGN KEY (`categoria_id`) REFERENCES `categorias` (`id`);
ALTER TABLE `taxas_produtos` ADD CONSTRAINT `taxas_produtos_fk1` FOREIGN KEY (`taxa_id`) REFERENCES `taxas` (`id`);
ALTER TABLE `taxas_produtos` ADD CONSTRAINT `taxas_produtos_fk2` FOREIGN KEY (`produto_id`) REFERENCES `produtos` (`id`);
ALTER TABLE `taxas_categorias` ADD CONSTRAINT `taxas_categorias_fk1` FOREIGN KEY (`taxa_id`) REFERENCES `taxas` (`id`);
ALTER TABLE `taxas_categorias` ADD CONSTRAINT `taxas_categorias_fk2` FOREIGN KEY (`categoria_id`) REFERENCES `categorias` (`id`);
ALTER TABLE `taxas_vendas` ADD CONSTRAINT `taxas_vendas_fk1` FOREIGN KEY (`vendas_id`) REFERENCES `vendas` (`id`);
ALTER TABLE `taxas_vendas` ADD CONSTRAINT `taxas_vendas_fk2` FOREIGN KEY (`taxas_id`) REFERENCES `taxas` (`id`);
ALTER TABLE `tributos_taxas` ADD CONSTRAINT `tributos_taxas_fk1` FOREIGN KEY (`tributo_id`) REFERENCES `tributos` (`id`);
ALTER TABLE `tributos_taxas` ADD CONSTRAINT `tributos_taxas_fk2` FOREIGN KEY (`taxas_id`) REFERENCES `taxas` (`id`);
ALTER TABLE `tributos_vendas` ADD CONSTRAINT `tributos_vendas_fk1` FOREIGN KEY (`tributo_id`) REFERENCES `tributos` (`id`);
ALTER TABLE `tributos_vendas` ADD CONSTRAINT `tributos_vendas_fk2` FOREIGN KEY (`vendas_id`) REFERENCES `vendas` (`id`);