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
