· 8 years ago · Dec 12, 2017, 05:00 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 telefone_funcionario_cpf_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_de_fornecedor)
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 telefone VARCHAR(255) NULL,
52 CONSTRAINT fornecedor_pk PRIMARY KEY (numero_identificacao),
53 CONSTRAINT fornecedor_cpf_coordenador_cadastro_fk FOREIGN KEY (cpf_coordenador_cadastro) REFERENCES funcionario (cpf)
54);
55
56CREATE TABLE IF NOT EXISTS telefone_fornecedor(
57 cnpj VARCHAR(15) UNIQUE,
58 telefone VARCHAR (255),
59 CONSTRAINT telefone_fornecedor_pk PRIMARY KEY (cnpj, telefone),
60 CONSTRAINT telefone_fornecedor_cnpj_fk FOREIGN KEY (cnpj) REFERENCES fornecedor (cnpj)
61);
62
63CREATE TABLE IF NOT EXISTS fornecedor_produto(
64 cnpj VARCHAR(15) UNIQUE,
65 codigo_de_barra VARCHAR(255) NOT NULL,
66 nome_produto VARCHAR(255) NOT NULL,
67 CONSTRAINT fornecedor_produto_pk PRIMARY KEY (cnpj, codigo_de_barra),
68 CONSTRAINT fornecedor_produto_cnpj_fk FOREIGN KEY (codigo_de_barra) REFERENCES produto (codigo_de_barra),
69 CONSTRAINT fornecedor_produto_nome_produto_fk FOREIGN KEY (nome_produto) REFERENCES produto (nome)
70);
71
72CREATE TABLE IF NOT EXISTS avaria(
73 codigo_de_barra_produto VARCHAR(255) UNIQUE,
74 identificador VARCHAR(255) UNIQUE,
75 descricao VARCHAR(255) NOT NULL,
76 preco_produto DECIMAL(15,2) NOT NULL,
77 nome_produto VARCHAR(255) NOT NULL,
78 CONSTRAINT avaria_pk PRIMARY KEY (identificador),
79 CONSTRAINT avaria_codigo_de_barra_fk FOREIGN KEY (codigo_de_barra_produto) REFERENCES produto (codigo_de_barra),
80 CONSTRAINT avaria_nome_produto_fk FOREIGN KEY (nome_produto) REFERENCES produto (nome),
81 CONSTRAINT avaria_preco_produto_fk FOREIGN KEY (preco_produto) REFERENCES produto(preco)
82);
83
84CREATE TABLE IF NOT EXISTS nota_fiscal_fornecedor(
85 codigo_de_barra VARCHAR(255) UNIQUE,
86 nfe VARCHAR(10) UNIQUE,
87 valor_frete DECIMAL(15,2) NOT NULL,
88 cfop VARCHAR(10) NOT NULL,
89 valor_nota DECIMAL(15,2) NOT NULL,
90 valor_total_produto DECIMAL(15,2) NOT NULL,
91 ipi DECIMAL (15,2) NOT NULL,
92 icms INTEGER NOT NULL,
93 quantidade_produto INTEGER NOT NULL,
94 cpf_funcionario VARCHAR(13) NOT NULL,
95 cnpj_fornecedor VARCHAR(15) NOT NULL,
96 CONSTRAINT nota_fiscal_fornecedor_pk PRIMARY KEY (codigo_de_barra, nfe),
97 CONSTRAINT nota_fiscal_fornecedor_cpf_funcionario_fk FOREIGN KEY (cpf_funcionario) REFERENCES funcionario (cpf),
98 CONSTRAINT nota_fiscal_fornecedor_cnpj_fornecedor_fk FOREIGN KEY (cnpj_fornecedor) REFERENCES fornecedor (cnpj)
99);
100
101
102CREATE TABLE IF NOT EXISTS nota_fiscal_produto(
103 codigo_de_barra VARCHAR(10) UNIQUE,
104 identificador VARCHAR(10) UNIQUE,
105 data_emissao DATE NOT NULL,
106 valor_total DECIMAL(15,2) NOT NULL,
107 forma_pagamento VARCHAR(15) NOT NULL,
108 quantidade_produto INTEGER NOT NULL,
109 cpf_funcionario VARCHAR(13) NOT NULL,
110 cnpj VARCHAR(15) UNIQUE,
111 endereco VARCHAR(255) NOT NULL,
112 situacao VARCHAR(50),
113 CONSTRAINT nota_fiscal_produto_pk PRIMARY KEY (codigo_de_barra),
114 CONSTRAINT nota_fiscal_produto_cpf_funcionario_fk FOREIGN KEY (cpf_funcionario) REFERENCES funcionario (cpf),
115 CONSTRAINT nota_fiscal_produto_forma_pagamento_ck CHECK (forma_pagamento IN('DINHEIRO', 'DEBITO', 'CREDITO'))
116);
117
118CREATE TABLE IF NOT EXISTS produto(
119 codigo_de_barra VARCHAR(20) UNIQUE,
120 identificador VARCHAR(13) UNIQUE,
121 nome VARCHAR(255) NOT NULL,
122 marca VARCHAR(255) NULL,
123 unidade_de_medida VARCHAR(5) NOT NULL,
124 ncm VARCHAR(255) NOT NULL,
125 quantidade_estoque INTEGER NULL,
126 preco_por_tabela DECIMAL(15,2) NOT NULL,
127 cst INTEGER NULL,
128 icms VARCHAR(9) NOT NULL,
129 categoria VARCHAR (255) NOT NULL,
130 numero_romaneio INTEGER NULL,
131 funcionario_cadastro_cpf VARCHAR(13) NOT NULL,
132 CONSTRAINT produto_pk PRIMARY KEY (codigo_de_barra, identificador),
133 CONSTRAINT produto_numero_romaneio_fk FOREIGN KEY (numero_romaneio) REFERENCES romaneio (numero),
134 CONSTRAINT produto_funcionario_cadastro_cpf FOREIGN KEY (funcionario_cadastro_cpf) REFERENCES funcionario (cpf)
135);
136
137CREATE TABLE IF NOT EXISTS pratileira(
138 codigo INTEGER UNIQUE,
139 categoria VARCHAR(20) NOT NULL,
140 CONSTRAINT pratileira_pk PRIMARY KEY (codigo)
141);
142
143CREATE TABLE IF NOT EXISTS localizacao_pratilheira(
144 codigo_de_barra_produto VARCHAR(20) UNIQUE,
145 identificador_produto VARCHAR (13) UNIQUE,
146 codigo_pratileira INTEGER UNIQUE,
147 CONSTRAINT localizacao_pratileira_pk PRIMARY KEY (codigo_de_barra_produto, identificador_produto, codigo_pratileira),
148 CONSTRAINT localizacao_pratileira_codigo_de_barra_produto_fk FOREIGN KEY (codigo_de_barra_produto) REFERENCES produto (codigo_de_barra),
149 CONSTRAINT localizacao_pratileira_identificador_produto_fk FOREIGN KEY (identificador_produto) REFERENCES produto (identificador)
150);
151
152CREATE TABLE IF NOT EXISTS estoque(
153 codigo VARCHAR(255) UNIQUE,
154 cpf_supervisor VARCHAR(13) NOT NULL,
155 CONSTRAINT estoque_codigo PRIMARY KEY (codigo),
156 CONSTRAINT estoque_cpf_supervisor_fk FOREIGN KEY (cpf_supervisor) REFERENCES funcionario (cpf)
157);