Advertisement
11eimilia11

Criacao de Tabelas BD FINAL

Jan 24th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 20.94 KB | None | 0 0
  1. CREATE SCHEMA IchibaSuperMarket;
  2. USE IchibaSuperMarket;
  3.  
  4.  
  5. -- TABELA DE CURSOS
  6.  
  7. CREATE TABLE curso (
  8.  
  9.     id char(4),
  10.     cargahoraria integer(4) not null CHECK ( cargahoraria > 0 ),
  11.     descricao varchar(40),
  12.     primary key(id)
  13. );
  14.  
  15. -- TABELA DE JORNADA DE TRABALHO
  16.  
  17. CREATE TABLE jornadatrabalho (
  18.    
  19.     id char(4) ,
  20.     descricao varchar(60),
  21.     trabalha_sabado boolean not null default true,
  22.     primary key(id)
  23.  
  24. );
  25.  
  26.  
  27. -- TABELA DE TURNO
  28.  
  29. CREATE TABLE turno (
  30.  
  31.     cod char(4),
  32.     descricao varchar(60),
  33.     hora_inicio time not null,
  34.     hora_fim time not null,
  35.     primary key (cod)
  36.  
  37. );
  38.  
  39. -- TABELA DE DIA
  40.  
  41. CREATE TABLE dia (
  42.  
  43.     sequencial char(4),
  44.     descricao varchar(60),
  45.     primary key (sequencial)
  46.    
  47. );
  48.  
  49. -- TABELA DA MATRIZ
  50.  
  51. CREATE TABLE matriz (
  52.    
  53.     CNPJ char(14),
  54.     nomefantasia varchar(10) not null,
  55.     primary key (CNPJ)
  56.  
  57. );
  58.  
  59. -- TABELA DE TELEFONE DA MATRIZ
  60.  
  61.  
  62. CREATE TABLE telefone_matriz (
  63.      
  64.     CNPJ char(14),
  65.     telefone char(10),
  66.     CONSTRAINT telefone_matriz_pk  primary key (CNPJ, telefone),
  67.     CONSTRAINT fk_cnpjmatriz foreign key (CNPJ) references matriz (CNPJ) ON DELETE CASCADE ON UPDATE CASCADE
  68.  
  69. );
  70.  
  71.  
  72. -- TABELA DE FILIAL
  73.  
  74. CREATE TABLE filial (
  75.  
  76.     seq char(4),
  77.     CNPJ_Matriz char(14) not null,
  78.     CPF_gerente char(11) ,
  79.     endereco varchar(50),
  80.     qtd_func int(4) CHECK (qtd_func >= 0),
  81.     CONSTRAINT filial_pk primary key ( seq , CNPJ_Matriz ),
  82.     CONSTRAINT fk_cnpjmatrizfilial foreign key ( CNPJ_MATRIZ ) references matriz (CNPJ) ON DELETE CASCADE ON UPDATE CASCADE
  83.    
  84. );
  85.  
  86. -- TABELA DE TELEFONE DA FILIAL
  87.  
  88. CREATE TABLE telefone_filial (
  89.  
  90.     seq_filial char(4),
  91.     CNPJ_Matriz char(14),
  92.     telefone char(10),
  93.     CONSTRAINT telefone_filial_pk primary key (seq_filial , CNPJ_Matriz , telefone ),
  94.     CONSTRAINT fk_cnpj foreign key (seq_filial, CNPJ_Matriz) references filial (seq , CNPJ_Matriz) ON DELETE CASCADE ON UPDATE CASCADE
  95.  
  96. );
  97.  
  98.  
  99. -- TABELA DE FUNCIONARIOS
  100.  
  101.  
  102. CREATE TABLE funcionario (
  103.  
  104.     CPF char(11) ,
  105.     id_jornada char(4) ,
  106.     seq_filial char(4),
  107.     cnpj_matriz char(14),
  108.     data_admissao date not null,
  109.     sex enum ('M', 'F'),
  110.     estado_civil varchar(10),
  111.     login varchar(60) default 'func' ,
  112.     senha varchar(15) default 'func',
  113.     RG char(7) not null UNIQUE,
  114.     nome varchar(45),
  115.     situacao varchar(10),
  116.     endereco varchar(45),
  117.     primary key(CPF),
  118.     foreign key (id_jornada) references jornadatrabalho (id) ,
  119.     foreign key ( seq_filial ) references filial (seq),
  120.     foreign key (cnpj_matriz) references matriz (CNPJ)
  121.  
  122. );
  123.  
  124. -- TABELA DE ESTOQUISTA HERDA FUNCIONARIO
  125.  
  126.  
  127. CREATE TABLE estoquista (
  128.    
  129.     CPF char(11),
  130.     primary key (CPF),
  131.     CONSTRAINT fk_estoq foreign key (CPF) references funcionario (CPF) ON DELETE CASCADE ON UPDATE CASCADE
  132.  
  133. );
  134.  
  135. -- TABELA DE DBA HERDA FUNCIONARIO
  136.  
  137. CREATE TABLE DBA (
  138.    
  139.     CPF char(11),
  140.     primary key (CPF),
  141.     CONSTRAINT fk_dba foreign key(CPF) references funcionario(CPF) ON DELETE CASCADE ON UPDATE CASCADE
  142.  
  143. );
  144.  
  145. -- TABELA DE GERENTE HERDA FUNCIONARIO
  146.  
  147. CREATE TABLE gerente(
  148.    
  149.     CPF char(11),
  150.     primary key (CPF),
  151.     CONSTRAINT fk_gerente foreign key(CPF) references funcionario(CPF) ON DELETE CASCADE ON UPDATE CASCADE
  152.  
  153. );
  154.  
  155.  
  156. -- TABELA DE ENTREGADOR HERDA FUNCIONARIO
  157.  
  158. CREATE TABLE entregador(
  159.    
  160.     CPF char(11),
  161.     primary key (CPF),
  162.     CONSTRAINT fk_entregador foreign key(CPF) references funcionario(CPF) ON DELETE CASCADE ON UPDATE CASCADE
  163.  
  164. );
  165.  
  166.  
  167. -- TABELA DE SUPERVISOR ESTOQUE HERDA FUNCIONARIO
  168.  
  169. CREATE TABLE supervisorestoque (
  170.    
  171.     CPF char(11),
  172.     primary key(CPF),
  173.     CONSTRAINT fk_super foreign key(CPF) references funcionario(CPF) ON DELETE CASCADE ON UPDATE CASCADE
  174.  
  175. );
  176.  
  177.  
  178.  
  179. -- TABELA MULTVALORADA DE FUNCIONARIO
  180.  
  181.  
  182. CREATE TABLE telefone_funcionario(
  183.    
  184.     CPF char(11),
  185.     telefone char(11),
  186.     primary key (CPF, telefone),
  187.     CONSTRAINT fk_telefonefuncinario foreign key(CPF) references funcionario(CPF) ON DELETE CASCADE ON UPDATE CASCADE
  188.  
  189. );
  190.  
  191.  
  192.  
  193. -- alterando a tabela filial
  194.  
  195. ALTER TABLE filial add constraint foreign key ( CPF_gerente ) references gerente (CPF);
  196.  
  197.  
  198. -- TABELA DE NOTIFICAÇÃO DADA A FUNCIONARIO
  199.  
  200. CREATE TABLE notificacao (
  201.    
  202.     id char(4),
  203.     cpf_fun char(11),
  204.     dia date not null,
  205.     descricao varchar(80),
  206.     primary key (id),
  207.     foreign key (Cpf_fun) references funcionario (CPF)
  208.    
  209. );
  210.  
  211.  
  212. -- TABELA DE NOTIFICAÇÃO DE MULTA DADA A FUNCIONARIO HERDA DE NOTIFICAÇÃO
  213.  
  214. CREATE TABLE notif_multa (
  215.  
  216.     id char(4),
  217.     pontos_cnh int,
  218.     valor float not null,
  219.     cep char(8),
  220.     complemento varchar(30),
  221.     primary key(id),
  222.     CONSTRAINT fk_notmulta foreign key (id) references notificacao(id) ON DELETE CASCADE ON UPDATE CASCADE
  223.    
  224. );
  225.  
  226.  
  227. -- TABELA DE NOTIFICAÇÃO ADVERTENCIA DADA A FUNCIONARIO HERDA DE NOTIFICAÇÃO
  228.  
  229. CREATE TABLE notif_advertencia (
  230.  
  231.     id char(4),
  232.     descricao varchar(20),
  233.     primary key(id),
  234.     CONSTRAINT fk_notadvert foreign key (id) references notificacao (id) ON DELETE CASCADE ON UPDATE CASCADE
  235. );
  236.  
  237.  
  238. -- TABELA DE NOTIFICAÇÃO DE SUSPENSAO DADA A FUNCIONARIO HERDA DE NOTIFICAÇÃO
  239.  
  240. CREATE TABLE notif_suspensao (
  241.    
  242.     id char(4),
  243.     data_inicio date not null,
  244.     data_termino date not null,
  245.     primary key(id),
  246.     CONSTRAINT not_suspen foreign key (id) references notificacao(id) ON DELETE CASCADE ON UPDATE CASCADE
  247. );
  248.  
  249.  
  250.  
  251. -- TABELA DE NOTIFICAÇÃO DE FALTA DADA A FUNCIONARIO HERDA DE NOTIFICAÇÃO
  252.  
  253.  
  254. CREATE TABLE notif_falta (
  255.    
  256.     id char(4),
  257.     dia date,
  258.     duracao int CHECK (duracao > 0 ),
  259.     primary key (id),
  260.     CONSTRAINT fk_notfalta foreign key (id) references notificacao (id) ON DELETE CASCADE ON UPDATE CASCADE
  261. );
  262.  
  263.  
  264. -- TABELA DE FERIAS DE FUNCIONARIO
  265.  
  266. CREATE TABLE ferias (
  267.    
  268.     id char(4),
  269.     cpf_fun char(11),
  270.     numero_dias int CHECK ( numero_dias > 0 ),
  271.     seq char(4) not null,
  272.     data_inicio date not null,
  273.     data_fim date not null,
  274.     primary key (id),
  275.     foreign key (cpf_fun) references funcionario (CPF)
  276.    
  277. );
  278.  
  279.  
  280.  
  281. -- TABELA DE CONTRA CHEQUE
  282.  
  283. CREATE TABLE contracheque (
  284.    
  285.     mes_referencia char(2) CHECK( mes_referencia > 0 AND mes_referencia < 13 ),
  286.     CPF char(11),
  287.     data_pagamento date,
  288.     valor_bruto float(5) not null CHECK( valor_bruto >= 0 ),
  289.     valor_liqd float(5) not null CHECK( valor_liqd >= 0),
  290.     valor_desconto float(5) CHECK ( valor_desconto >= 0 ),
  291.     primary key (mes_referencia , CPF),
  292.     foreign key(CPF) references funcionario(CPF) ON DELETE CASCADE ON UPDATE CASCADE
  293.  
  294. );
  295.  
  296.  
  297. -- TABELA DE ENTREGA
  298.  
  299. CREATE TABLE entrega (
  300.    
  301.     seq char(4) ,
  302.     CPF_entregador char(11),
  303.     data_entrega date ,
  304.     hora_estimada time,
  305.     primary key (seq),
  306.     foreign key(CPF_entregador) references entregador(CPF)
  307.  
  308. );
  309.  
  310.  
  311.  
  312. -- TABELA DE COMPRA
  313.  
  314. CREATE TABLE compra (
  315.  
  316.     cod char(4),
  317.     seq_entrega char(4),
  318.     valor_total float not null CHECK( valor_total > 0 ),
  319.     dia date not null,
  320.     valor_total_desconto float CHECK (valor_total_desconto >= 0 ),
  321.     statos boolean default true,
  322.     primary key (cod),
  323.     foreign key (seq_entrega) references entrega ( seq )
  324. );
  325.  
  326. -- TABELA DE COMPRA COMUM
  327.  
  328. CREATE TABLE compra_comum (
  329.  
  330.     cod char(4),
  331.     primary key(cod),
  332.     CONSTRAINT fk_compracomum foreign key (cod) references compra (cod) ON DELETE CASCADE ON UPDATE CASCADE
  333. );
  334.  
  335.  
  336. -- TABELA DE COMPRA PROGRAMADA
  337.  
  338. CREATE TABLE compra_programada (
  339.  
  340.     cod char(4),
  341.     data_1 date not null,
  342.     data2 date,
  343.     esta_ativa boolean default true,
  344.      CONSTRAINT primary key (cod),
  345.     CONSTRAINT fk_compraprogramada foreign key (cod) references compra (cod) ON DELETE CASCADE ON UPDATE CASCADE
  346. );
  347.  
  348.    
  349.  
  350. -- TABELA DE GARAGEM
  351.  
  352. CREATE TABLE garagem (
  353.  
  354.     cod char(4),
  355.     seq_filial char(4),
  356.     CNPJ_matriz char(14),
  357.     descricao varchar(15),
  358.     capacidade int(3) not null,
  359.     num_veiculos_atual int(3),
  360.     primary key(cod),
  361.     foreign key(seq_filial , CNPJ_matriz ) references filial (seq , CNPJ_Matriz)
  362.    
  363.  
  364. );
  365.    
  366.  
  367. -- TABELA DE VEICULO
  368.  
  369. CREATE TABLE veiculo (
  370.  
  371.     placa char(7),
  372.     seq_filial char(4),
  373.     CNPJ_matriz char(14),
  374.     cod_garagem char(4) ,
  375.     modelo varchar(15),
  376.     descricao varchar(15),
  377.     cor varchar(10),
  378.     ano year,
  379.     statuss boolean default true,
  380.     primary key (placa),
  381.     foreign key(seq_filial , CNPJ_matriz ) references filial(seq , CNPJ_Matriz),
  382.     foreign key(cod_garagem) references garagem (cod)
  383. );
  384.  
  385. -- TABELA DE ESTOQUE
  386.  
  387. CREATE TABLE estoque (
  388.  
  389.     id char(4),
  390.     seq_filial char(7),
  391.     cnpj_matriz char(14),
  392.     descricao varchar(80),
  393.     dt_ultima_entrada date,
  394.     primary key (id),
  395.     foreign key (seq_filial , cnpj_matriz) references filial (seq , CNPJ_Matriz)
  396.    
  397. );
  398.  
  399.  
  400. -- TABELA MAQUINA
  401.  
  402. CREATE TABLE maquina (
  403.  
  404.     id char(4),
  405.     id_estoque char(4),
  406.     id_operador char(11),
  407.     ano year ,
  408.     combustivel varchar(30),
  409.     modelo varchar(30),
  410.     capacidade float CHECK( capacidade > 0 ) ,
  411.     elevavao_max float  CHECK ( elevavao_max > 0 ),
  412.     garantia date,
  413.     tipo varchar(30),
  414.     comprimento float ,
  415.     primary key (id),
  416.     foreign key (id_estoque) references estoque (id),
  417.     foreign key (id_operador) references estoquista (cpf)
  418. );
  419.  
  420. -- TABELA DE AVARIA
  421.  
  422. CREATE TABLE avaria (
  423.    
  424.     id char(4),
  425.     causa varchar(20) not null,
  426.     preco float(3) CHECK ( preco > 0 ),
  427.     obs varchar(40),
  428.     primary key(id)
  429.    
  430. );
  431.  
  432. -- TABELA DE PRATELEIRA
  433.  
  434. CREATE TABLE prateleira (
  435.  
  436.     codigo char(4),
  437.     altura float(2) not null,
  438.     comprimento float(2) not null,
  439.     posicao_nivel char(2),
  440.     primary key(codigo)
  441.  
  442. );
  443.  
  444. -- TABELA DE NCM DE PRODUTO
  445.  
  446. CREATE TABLE NCM (
  447.    
  448.     id char(4),
  449.     descricao varchar(40),
  450.     cod_mercosul char(9) not null,
  451.     primary key(id)
  452.  
  453. );
  454.  
  455.  
  456. -- TABELA DE UNIDADE DE PRODUTO  
  457.  
  458. CREATE TABLE unidade (
  459.  
  460.     cod char(4),
  461.     descricao varchar(30),
  462.     sigla char(2) not null,
  463.     primary key(cod)
  464.    
  465. );
  466.  
  467.  
  468. -- TABELA DE CATEGORIA DE PRODUTO
  469.  
  470. CREATE TABLE categoria (
  471.    
  472.     cod char(4),
  473.     descricao varchar(30) not null,
  474.     primary key (cod)
  475.  
  476. );
  477.  
  478.  
  479. -- TABELA DE SUBCATEGORIA DE PRODUTO
  480.  
  481. CREATE TABLE subcategoria (
  482.  
  483.     cod char(4),
  484.     cod_categoria char(4),
  485.     descricao varchar(30) not null,
  486.     primary key(cod),
  487.     foreign key (cod_categoria) references categoria(cod)
  488.  
  489. );
  490.  
  491.  -- TABELA DE MARCA DE PRODUTO
  492.  
  493. CREATE TABLE marca (
  494.  
  495.     cod char(4),
  496.     descricao varchar(40),
  497.     primary key(cod)
  498.  
  499. );
  500.  
  501.  
  502.  
  503. -- TABELA DE FORNECEDOR
  504.  
  505. CREATE TABLE fornecedor (
  506.  
  507.     cod char(4),
  508.     nome varchar(20) not null,
  509.     CNPJ char(14) not null,
  510.     rua varchar(20),
  511.     bairro varchar(15),
  512.     CEP char(8),
  513.     estado varchar(15) not null,
  514.     ativo boolean default true,
  515.     primary key(cod )
  516. );
  517.  
  518.  -- TABELA DE TELEFONE DE FORNECEDOR
  519.  
  520. CREATE TABLE telefone_fornecedor(
  521.    
  522.     cod_fornecedor char(4),
  523.     telefone char(11),
  524.     primary key( cod_fornecedor, telefone),
  525.     CONSTRAINT fk_forn foreign key(cod_fornecedor) references fornecedor (cod) ON DELETE CASCADE ON UPDATE CASCADE
  526.  
  527. );
  528.  
  529.  
  530.  
  531. -- TABELA  DE PRODUTO REF  
  532.  
  533. CREATE TABLE produto_ref (
  534.  
  535.     cod char(4),
  536.     id_unidade char(4),
  537.     id_marca char(4),
  538.     id_ncm char(4),
  539.     id_categoria char(4),
  540.     id_subcategoria char(4),
  541.     id_fornecedor char(4),
  542.     qtd_estoque int ,
  543.     ICMS float,
  544.     CST varchar(3),
  545.     preco_por_tabela float,
  546.     cod_barra char(13),
  547.     freq_pedido float NULL,
  548.     descricao varchar(30),
  549.     qtd_min int,
  550.     qtd_total_estoque int,
  551.     preco_ult_compra float,
  552.     primary key (cod),
  553.     foreign key (id_unidade) references unidade (cod),
  554.     foreign key (id_marca) references marca (cod),
  555.     foreign key (id_ncm) references ncm (id),
  556.     foreign key (id_categoria) references categoria (cod),
  557.     foreign key (id_subcategoria) references subcategoria (cod),
  558.     foreign key (id_fornecedor) references fornecedor (cod)
  559.  
  560. );
  561.  
  562. -- TABELA ITEM DE COMPRA
  563.  
  564. CREATE TABLE item_compra (
  565.  
  566.     cod_compra char(4),
  567.     cod_produto char(4),
  568.     quantidade int CHECK (quantidade > 0) ,
  569.     valor_desconto float default 0 CHECK (valor_desconto >= 0),
  570.     valor_unitario float CHECK (valor_unitario > 0),
  571.     primary key (cod_compra , cod_produto),
  572.     foreign key (cod_compra) references compra (cod),
  573.     foreign key (cod_produto) references produto_ref (cod)
  574. );
  575.  
  576.  
  577.  
  578. -- TABELA DE INCIDENTE  
  579.  
  580. CREATE TABLE incidente (
  581.  
  582.     cod char(4),
  583.     seq_entrega char(4),
  584.     dataa date not null,
  585.     relatorio varchar(200),
  586.     hora time , # nao precisa ser not null
  587.     primary key(cod),
  588.     foreign key (seq_entrega) references entrega (seq)
  589.  
  590. );
  591.  
  592. -- TABELA DOCS
  593.  
  594. CREATE TABLE docs (
  595.    
  596.     cod_incidente char(4),
  597.     docs varchar(20),
  598.     primary key (cod_incidente , docs),
  599.     CONSTRAINT fk_incidente foreign key (cod_incidente) references incidente (cod ) ON DELETE CASCADE ON UPDATE CASCADE
  600. );
  601.  
  602. -- TABELA DE TIPO DE PAGAMENTO
  603.  
  604. CREATE TABLE tipo_pagamento (
  605.    
  606.     cod char(4),
  607.     descricao varchar(30),
  608.     primary key(cod)
  609.  
  610.  );
  611.  
  612.  
  613. -- TABELA DE PEDIDO FORNECEDOR
  614.  
  615. CREATE TABLE pedido_fornecedor (
  616.    
  617.     cod char(4),
  618.     CPF_gerente char(11),
  619.     total_desconto float CHECK ( total_desconto >= 0 ),
  620.     valor_total_IPI float CHECK ( valor_total_IPI >= 0 ),
  621.     CFOP char(4) not null,
  622.     valor_total float CHECK ( valor_total >= 0),
  623.     dia date not null,
  624.     statos boolean default true,
  625.     valor_frete float CHECK (valor_frete >= 0),
  626.     primary key (cod),
  627.     foreign key (CPF_gerente) references gerente (CPF)
  628. );
  629.  
  630. -- TABELA DE FATURA
  631.  
  632. CREATE TABLE fatura (
  633.  
  634.     id char(4),
  635.     cod_pedido_fornecedor char(4),
  636.     data_vencimento date not null,
  637.     valor_pago_atual float CHECK (valor_pago_atual > 0 ),
  638.     valor_total_final float CHECK (valor_total_final > 0),
  639.     data_emissao date not null,
  640.     statos boolean default true,
  641.     data_paga date,
  642.     multa float,
  643.     primary key (id),
  644.     foreign key (cod_pedido_fornecedor) references pedido_fornecedor (cod)
  645.  
  646. );
  647.  
  648. -- TABELA DE NOTA FISCAL
  649.  
  650. CREATE TABLE nota_fiscal (
  651.  
  652.     NFE char(9),
  653.     ICMS float not null,
  654.     valor_total float not null CHECK ( valor_total > 0 ),
  655.     valor_total_desconto float CHECK ( valor_total_desconto >= 0 ),
  656.     dia date not null,
  657.     valor_frete float,
  658.     primary key (NFE)
  659. );
  660.  
  661.  
  662. -- TABELA DE PAGAMENTO  
  663.  
  664. CREATE TABLE pagamento (
  665.    
  666.     cod char(4),
  667.     id_fatura char(4),
  668.     cod_compra char(4),
  669.     cod_tipo_pagamento char(4),
  670.     valor_pago float CHECK ( valor_pago > 0 ),
  671.     dia date not null,
  672.     statos boolean default true ,
  673.     tipo_pagamento enum ('Cartao credito', 'Cartao Debito', 'Boleto'),
  674.     primary key (cod),
  675.     foreign key (id_fatura) references fatura (id),
  676.     foreign key (cod_compra) references compra (cod),
  677.     foreign key (cod_tipo_pagamento) references tipo_pagamento ( cod)
  678.    
  679. );
  680.  
  681.  
  682. -- TABELA DA NOTA FISCAL FORNECEDOR
  683.      
  684. CREATE TABLE nota_fiscal_fornecedor (
  685.      
  686.     NFE char(9),
  687.     cod_pagamento char(4),
  688.     CFOP char(4) not null,
  689.     IPI float,
  690.     primary key(NFE),
  691.     CONSTRAINT fk_ntfiscalfornecedor foreign key (NFE) references nota_fiscal (NFE) ON DELETE CASCADE ON UPDATE CASCADE,
  692.     foreign key (cod_pagamento) references pagamento (cod)
  693.  );
  694.  
  695. -- TABELA NOTA FISCAL COMPRA
  696.  
  697. CREATE TABLE nota_fiscal_compra (
  698.  
  699.     NFE char(9),
  700.     cod_pagamento char(4),
  701.     primary key (NFE),
  702.     CONSTRAINT fk_ntfiscalcompra foreign key (NFE) references nota_fiscal (NFE) ON DELETE CASCADE ON UPDATE CASCADE,
  703.     foreign key (cod_pagamento) references pagamento (cod)
  704.  
  705. );
  706.  
  707.  
  708. -- TABELA DE CLIENTE  
  709.  
  710. CREATE TABLE cliente (
  711.  
  712.     CPF char(11),
  713.     seq_filial char(4),
  714.     cnpj_matriz char(14),
  715.     cep char(8) not null,
  716.     cidade varchar(30),
  717.     numero char(3),
  718.     descricao varchar(30),
  719.     valor_credito float,
  720.     p_nome varchar(20) not null,
  721.     m_nome varchar(20) ,
  722.     u_nome varchar(30) not null,
  723.     rg char(7) not null UNIQUE,
  724.     senha varchar(12) not null default '123456',
  725.     tem_clube_desconto boolean default false,
  726.     data_cadastro date,
  727.     email varchar(40) not null,
  728.     data_nascimento date not null,
  729.     primary key (CPF),
  730.     foreign key (seq_filial , cnpj_matriz) references filial (seq , CNPJ_Matriz)
  731.    
  732. );
  733.  
  734.  
  735. -- TABELA DE TELEFONE DE CLIENTE
  736.  
  737. CREATE TABLE telefone_cliente (
  738.    
  739.     CPF char(11) not null,
  740.     telefone char(10),
  741.     CONSTRAINT telefone_cliente_pk primary key (CPF, telefone),
  742.     CONSTRAINT fk_telefonecliente foreign key (CPF) references cliente (CPF) ON DELETE CASCADE ON UPDATE CASCADE
  743. );
  744.  
  745.  
  746. -- TABELA DE SUGESTAO
  747.  
  748. CREATE TABLE sugestao (
  749.    
  750.     CPF_cliente char(11),
  751.     id char(4),
  752.     dia date,
  753.     descricao varchar(30) not null,
  754.     primary key (id , CPF_cliente),
  755.     CONSTRAINT fk_sugestao foreign key (CPF_cliente) references cliente (CPF) ON DELETE CASCADE ON UPDATE CASCADE
  756. );
  757.  
  758.  
  759.  
  760. -- TABELA DE RECLAMACAO
  761.  
  762. CREATE TABLE reclamacao (
  763.  
  764.     CPF_cliente char(11),
  765.     id char(4),
  766.     descricao varchar(30),
  767.     motivo varchar(70),
  768.     data_ocorrido date,
  769.     data_reclamacao date,
  770.     primary key (id, CPF_cliente),
  771.     CONSTRAINT fk_reclamacao foreign key (CPF_cliente) references cliente (CPF) ON DELETE CASCADE ON UPDATE CASCADE
  772. );
  773.  
  774. -- TABELA DE PROMOCAO
  775.  
  776. CREATE TABLE promocao (
  777.  
  778.     cod char(4),
  779.     seq_filial char(4),
  780.     cnpj_matriz char(14),
  781.     nome varchar(30),
  782.     data_inicio date not null,
  783.     percentual_reducao float not null CHECK ( percentual_reducao > 0 ),
  784.     data_fim date,
  785.     obs varchar(30),
  786.     descricao varchar(50),
  787.     primary key (cod),
  788.     foreign key (seq_filial, cnpj_matriz ) references filial (seq , CNPJ_Matriz)
  789.  
  790. );
  791.  
  792.  
  793. -- TABELA DE ITEM PEDIDO
  794.  
  795. CREATE TABLE item_pedido (
  796.  
  797.     seq char(4),
  798.     cod_produto_ref char(4),
  799.     cod_pedido_fornecedor char(4)   ,
  800.     quantidade int not null CHECK (quantidade > 0) ,
  801.     preco_unitario float  not null CHECK (preco_unitario  > 0),
  802.     primary key (cod_produto_ref , cod_pedido_fornecedor),
  803.     key(seq),
  804.     foreign key (cod_produto_ref) references produto_ref (cod),
  805.     foreign key (cod_pedido_fornecedor) references pedido_fornecedor(cod)
  806. );
  807.  
  808.  
  809. -- TABELA DE LOTE
  810.  
  811. CREATE TABLE lote (
  812.    
  813.     cod char(4),
  814.     cod_pedido_fornecedor char(4),
  815.     descricao varchar(30),
  816.     data_chegada date not null,
  817.     primary key( cod) ,
  818.     foreign key (cod_pedido_fornecedor) references pedido_fornecedor (cod)
  819.  
  820. );
  821.  
  822.  
  823.  
  824. -- TABELA DE ITEM DE ESTOQUE
  825.  
  826. CREATE TABLE item_estoque (
  827.    
  828.     cod_lote char(4),
  829.     id_estoque char(4),
  830.     cod_produto char(4),
  831.     id_avaria char(4),
  832.     id_prateleira char(4),
  833.     data_validade date ,
  834.     data_fabricacao date,
  835.     data_entrada date not null,
  836.     valor_compra float CHECK (valor_compra > 0),
  837.     quantidade int CHECK (quantidade > 0),
  838.     primary key (cod_lote, id_estoque , cod_produto),
  839.     foreign key (cod_lote) references lote (cod),
  840.     foreign key (id_estoque) references estoque (id),
  841.     CONSTRAINT fk_produtoestoque foreign key ( cod_produto ) references produto_ref( cod) ON DELETE CASCADE ON UPDATE CASCADE,
  842.     foreign key (id_avaria ) references avaria ( id),
  843.     foreign key (id_prateleira ) references prateleira ( codigo)
  844.    
  845. );
  846.  
  847. -- TABELA DE PERDA DE PRODUTO
  848.  
  849. CREATE TABLE perda (
  850.  
  851.     seq char(4),
  852.     cod_lote char(4),
  853.     cod_produto char(4),
  854.     id_estoque char(4),
  855.     cpf_gerente char(11),
  856.     dia date not null ,
  857.     quantidade_perdida int CHECK (quantidade_perdida > 0) ,
  858.     motivo varchar(80),
  859.     primary key (seq , cod_lote , cod_produto , id_estoque),
  860.     foreign key (cpf_gerente) references gerente (cpf),
  861.     CONSTRAINT fk_perdaitestoq foreign key ( id_estoque ) references item_estoque(id_estoque ),
  862.     CONSTRAINT fk_perdalote foreign key (cod_lote) references item_estoque (cod_lote),
  863.     CONSTRAINT fk_perdaprod foreign key (cod_produto) references item_estoque (cod_produto)  ON DELETE CASCADE ON UPDATE CASCADE
  864. );
  865.  
  866.  
  867.  
  868. -- TABELA DE RELACIONAMENTO TEM DE FUNCIONARIO
  869.  
  870. CREATE TABLE tem (
  871.      
  872.     id_jornada char(4),
  873.     id_turno char(4),
  874.     id_dia char(4),
  875.     primary key (id_jornada , id_turno , id_dia ),
  876.     foreign key (id_jornada) references jornadatrabalho(id),
  877.     foreign key (id_turno) references turno(cod),
  878.     foreign key (id_dia) references dia (sequencial)
  879.    
  880. );
  881.  
  882.  
  883. -- TABELA RELACIONAMENTO REALIZA CURSO
  884.  
  885. CREATE TABLE realizacurso (
  886.    
  887.     cpf_fun char(11),
  888.     id_curso char(4),
  889.     dt_inicio date,
  890.     dt_fim date,
  891.     primary key (cpf_fun , id_curso),
  892.     foreign key (cpf_fun) references funcionario(CPF),
  893.     foreign key (id_curso) references curso (id)
  894. );
  895.  
  896. -- TABELA DE GERENCIA DE ESTOQUE
  897.  
  898. CREATE TABLE gerencia_estoque (
  899.    
  900.     cpf_super_estoque char(11),
  901.     id_estoque char(4),
  902.     dt_fim date,
  903.     dt_inicio date,
  904.     primary key (cpf_super_estoque , id_estoque),
  905.     foreign key (cpf_super_estoque) references SupervisorEstoque (CPF),
  906.     foreign key (id_estoque) references estoque(id)
  907.    
  908. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement