Não poderia simplesmente o dependente ter um cpf_responsavel? CREATE TABLE dependente ( iddependente serial, cpf_responsavel bigint not null, nome text not null, tipo integer, primary key(iddependente), foreign key (cpf_responsavel) references funcionario(cpf_responsavel) );
Em 25 de maio de 2011 16:24, Alexsander Rosa <[email protected]>escreveu: > Supondo uma tabela "funcionario" cuja PK é cpf. > > Num primeiro momento pode-se pensar algo assim: > CREATE TABLE dependente ( > cpf bigint not null, > nome text not null, > tipo integer, > primary key(cpf,nome), > foreign key (cpf) references funcionario(cpf) > ); > > Mas este modelo não suporta o caso dos casais que trabalham na mesma > empresa e têm filhos; os filhos ficariam vinculados a apenas um deles. Mesmo > que se mapeasse pelo "tipo" pra saber quem é o cônjugue-colega, não tem como > garantir que o cônjugue é mesmo pai ou mãe da criança, pode ser um casal com > filhos de casamentos anteriores. > > Exemplo: > Pedro (funcionário) é pai de Maria (mãe Fernanda, ex-esposa) e Paula (mãe > Regina, esposa e funcionária). > Regina (funcionária) é mãe de Henrique (pai Roberto, ex-marido) e Paula > (pai Pedro, marido e funcionário). > Fernanda e Roberto poderiam ser funcionários também, para complicar mais um > pouco. > > Pensei em algo tipo: > CREATE TABLE dependente ( > cpf_pai bigint not null, > cpf_mae bigint not null, > nome text not null, > tipo integer, > primary key(cpf_pai, cpf_mae, nome), > foreign key (cpf) references funcionario(cpf) > ); > > > -- > Atenciosamente, > Alexsander da Rosa > http://rednaxel.com > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
