· 8 years ago · Dec 12, 2017, 04:16 PM
1CREATE SCHEMA VAREJAO_DE_FRALDAS;
2USE VAREJAO_DE_FRALDAS;
3
4CREATE TABLE IF NOT EXISTS funcionario(
5 cpf VARCHAR(13) UNIQUE,
6 sexo char (1) NOT NULL,
7 cargo VARCHAR(255) NOT NULL,
8 estado_civil VARCHAR(15) NOT NULL,
9 nome VARCHAR(255) NOT NULL,
10 situacao VARCHAR(7) NOT NULL,
11 endereco VARCHAR(255) NOT NULL,
12 cep VARCHAR(11) NOT NULL,
13 cpf_gerente VARCHAR(13) NULL,
14 CONSTRAINT funcionario_pk PRIMARY KEY (cpf),
15 CONSTRAINT funcionario_situacao_ck CHECK (situacao IN ('ATIVO', 'INATIVO')),
16 CONSTRAINT funcionario_cargo_ck CHECK (cargo IN ('OPERADOR DE CAIXA', 'SUPERVISOR DE CAIXA', 'COORDENADOR', 'CARREGADOR', 'SUPERVISOR DE ESTOQUE'))
17);
18
19CREATE TABLE IF NOT EXISTS telefone_funcionario(
20 cpf VARCHAR(13) UNIQUE,
21 telefone VARCHAR(255),
22 CONSTRAINT telefone_funcionario_pk PRIMARY KEY (cpf, telefone),
23 CONSTRAINT cpf_funcionario_fk FOREIGN KEY (cpf) REFERENCES funcionario (cpf)
24);
25
26SELECT *
27FROM funcionario;
28
29CREATE TABLE IF NOT EXISTS romaneio(
30 numero INTEGER UNIQUE,
31 data_de_emissao DATE NOT NULL,
32 descricao VARCHAR(255) NOT NULL,
33 quantidade INTEGER NOT NULL,
34 codigo_nota_fiscal_fornecedor VARCHAR(10) UNIQUE,
35 CONSTRAINT romaneio_pk PRIMARY KEY (numero),
36 CONSTRAINT romaneio_codigo_nota_fiscal_fornecedor_fk FOREIGN KEY (codigo_nota_fiscal_fornecedor) REFERENCES nota_fiscal_fornecedor (codigo)
37);
38
39CREATE TABLE IF NOT EXISTS fornecedor(
40 cnpj VARCHAR(15) UNIQUE,
41 nome_fantasia VARCHAR(255) NOT NULL,
42 numero_identificacao VARCHAR(10) UNIQUE,
43 nome VARCHAR(255) NOT NULL,
44 nome_responsavel VARCHAR(255) NULL,
45 endereco VARCHAR(255) NOT NULL,
46 cep VARCHAR(11) NOT NULL,
47 ie_inscriçao_estadual VARCHAR(11) UNIQUE,
48 cpf_coordenador_cadastro VARCHAR(13) NOT NULL,
49 email VARCHAR(255) NULL,
50 ramo VARCHAR(255) NOT NULL,
51 CONSTRAINT fornecedor_pk PRIMARY KEY (numero_identificacao),
52 CONSTRAINT fornecedor_cpf_coordenador_cadastro_fk FOREIGN KEY (cpf_coordenador_cadastro) REFERENCES funcionario (cpf)
53);
54
55CREATE TABLE IF NOT EXISTS nota_fiscal_fornecedor(
56 codigo_de_barra VARCHAR(255) UNIQUE,
57 nfe VARCHAR(10) UNIQUE,
58 valor_frete DECIMAL(15,2) NOT NULL,
59 cfop VARCHAR(10) NOT NULL,
60 valor_nota DECIMAL(15,2) NOT NULL,
61 valor_total_produto DECIMAL(15,2) NOT NULL,
62 ipi DECIMAL (15,2) NOT NULL,
63 icms INTEGER NOT NULL,
64 quantidade_produto INTEGER NOT NULL,
65 cpf_funcionario VARCHAR(13) NOT NULL,
66 cnpj_fornecedor VARCHAR(15) NOT NULL,
67 CONSTRAINT nota_fiscal_fornecedor_pk PRIMARY KEY (codigo_de_barra, nfe),
68 CONSTRAINT nota_fiscal_fornecedor_cpf_funcionario_fk FOREIGN KEY (cpf_funcionario) REFERENCES funcionario (cpf),
69 CONSTRAINT nota_fiscal_fornecedor_cnpj_fornecedor_fk FOREIGN KEY (cnpj_fornecedor) REFERENCES fornecedor (cnpj)
70);
71
72
73CREATE TABLE IF NOT EXISTS nota_fiscal_produto(
74 codigo_de_barrra VARCHAR(10) UNIQUE,
75 identificador VARCHAR(10) UNIQUE,
76 data_emissao DATE NOT NULL,
77 valor_total DECIMAL(15,2) NOT NULL,
78 forma_pagamento VARCHAR(15) NOT NULL,
79 quantidade_produto INTEGER NOT NULL,
80 cpf_funcionario VARCHAR(13) NOT NULL,
81 cnpj VARCHAR(15) UNIQUE,
82 endereco VARCHAR(255) NOT NULL,
83 situacao VARCHAR(50),
84 CONSTRAINT nota_fiscal_produto_pk PRIMARY KEY (codigo_de_barra),
85 CONSTRAINT nota_fiscal_produto_cpf_funcionario_fk FOREIGN KEY (cpf_funcionario) REFERENCES funcionario (cpf),
86 CONSTRAINT nota_fiscal_produto_forma_pagamento_ck CHECK (forma_pagamento IN('DINHEIRO', 'DEBITO', 'CREDITO'))
87);
88
89CREATE TABLE IF NOT EXISTS produto(
90 codigo_de_barra VARCHAR(20) UNIQUE,
91 identificador VARCHAR(13) UNIQUE,
92 nome VARCHAR(255) NOT NULL,
93 marca VARCHAR(255) NULL,
94 unidade_de_medida VARCHAR(5) NOT NULL,
95 ncm VARCHAR(255) NOT NULL,
96 quantidade_estoque INTEGER NULL,
97 preco_por_tabela DECIMAL(15,2) NOT NULL,
98 cst INTEGER NULL,
99 icms VARCHAR(9) NOT NULL,
100 categoria VARCHAR (255) NOT NULL,
101 numero_romaneio INTEGER NULL,
102 funcionario_cadastro_cpf VARCHAR(13) NOT NULL,
103 CONSTRAINT produto_pk PRIMARY KEY (codigo_de_barra, identificador),
104 CONSTRAINT produto_numero_romaneio_fk FOREIGN KEY (numero_romaneio) REFERENCES romaneio (numero),
105 CONSTRAINT produto_funcionario_cadastro_cpf FOREIGN KEY (funcionario_cadastro_cpf) REFERENCES funcionario (cpf)
106);
107
108CREATE TABLE IF NOT EXISTS pratileira(
109 codigo INTEGER UNIQUE,
110 categoria VARCHAR(20) NOT NULL,
111 CONSTRAINT pratileira_pk PRIMARY KEY (codigo)
112);
113
114CREATE TABLE IF NOT EXISTS localizacao_pratilheira(
115 codigo_de_barra_produto VARCHAR(20) UNIQUE,
116 identificador_produto VARCHAR (13) UNIQUE,
117 codigo_pratileira INTEGER UNIQUE,
118 CONSTRAINT localizacao_pratileira_pk PRIMARY KEY (codigo_de_barra_produto, identificador_produto, codigo_pratileira),
119 CONSTRAINT localizacao_pratileira_codigo_de_barra_produto FOREIGN KEY (codigo_de_barra_produto) REFERENCES produto (codigo_de_barra),
120 CONSTRAINT localizacao_pratileira_identificador_produto FOREIGN KEY (identificador_produto) REFERENCES produto (identificador)
121);