Open quintinoddigital opened 1 year ago
drop table if exists tb_tipo_documento cascade; drop table if exists tb_documento cascade;
create table if not exists tb_tipo_documento ( codigo serial not null, descricao varchar(100) not null unique, sigla varchar(50) not null unique, constraint fk_tipo_documento primary key (codigo) );
create table if not exists tb_documento ( codigo serial not null, id_pessoa integer not null, id_tipo_documento integer not null unique, numero varchar(100) not null unique, data_emissao date null, data_vencimento date null, constraint fkdocumento primary key (codigo), constraint fk_pessoa foreign key (id_pessoa) references tb_pessoa (codigo), constraint fk_tipo_documento foreign key (id_tipo_documento) references tb_tipo_documento (codigo) );
select * from tb_tipo_documento; insert into tb_tipo_documento (descricao, sigla) values ('Registro Geral', 'RG'); insert into tb_tipo_documento (descricao, sigla) values ('Cadastro Nacional de Pessoa Física', 'CPF');
-- select * from tb_documento; insert into tb_documento (id_pessoa, id_tipo_documento, numero, data_emissao, data_vencimento) values (1, 1, '24.699-35', null, null); insert into tb_documento (id_pessoa, id_tipo_documento, numero, data_emissao, data_vencimento) values (1, 2, '027.350.251-44', null, null);
select pessoa.nome, tipo_documento.sigla, documento.numero from tb_pessoa pessoa join tb_documento documento on documento.id_pessoa = pessoa.codigo join tb_tipo_documento tipo_documento on tipo_documento.codigo = documento.id_tipo_documento;
/* Regra Negocial: Se o usuário anexar um arquivo (pdf, word, png etc), o sistema deve criar uma estrutura de pasta com o nome da pessoa e dentro dessa pasta criar outra pasta chamada de Documentos e dentro dessa pasta outra pasta com a Sigla do Tipo de Documento. Exemplo:
<USUARIO>
Documentos
RG
rg.pdf
CPF
cpf.pdf
CNH
cnh_nova.pdf
cnh_vencida.pdf
*/
tb_arquivo ( codigo nome tamanho extencao url );
tb_arquivo_documento ( codigo id_arquivo id_documento );
Tarefa