Chave Estrangeira

Pessoal to com um duvida e queria saber se é possível no PostgreSql

Tenho 4 tabelas

Tipos, Produtos, Servicos e Movimentacoes

no Tipos tem o Codigo e a Descricao onde
1 Produto
2 Servico

em Movimentacao tem dois campos um codigo_tipo que e a chave estrangeira de Tipos e codigo_processamento que deveria ser a chave estrangeira de Produtos ou Servivos

Tem como criar uma chave estrangeira de duas Tabelas diferentes dependo do valor de Outro Campo?