Tabela de empréstimos associada à tabela de vencimentos.
também
Tabela de faturas associada à tabela de vencimentos.
Na tabela devida, uma das chaves estrangeiras deve estar presente e a outra deve ser nula.
Que tipo de restrição será perfeita?
Obrigado.
Ao que parece, você não pode resolver isso com uma restrição, mas nada impede que você defina mais delas. Acredito que algo assim deve funcionar:
Uma coluna que possui uma chave estrangeira definida não precisa ser
NOT NULL
, ao contrário da coluna à qual ela faz referência. Além disso, você pode definir verificações de complexidade arbitrária - é aconselhável manter a complexidade no mínimo necessário.Eu acredito que você não pode ter tal restrição. Você pode ter uma restrição de coluna ou uma restrição de tabela. Ao trabalhar com chaves estrangeiras, elas ficam na tabela que "aponta" para a outra tabela, não podendo utilizar colunas de outras tabelas. Portanto, uma restrição na tabela
invoice
só pode verificarinvoice
colunas e não pode acessarloan
colunas.Você pode contornar o problema usando gatilhos em tabelas
load
e .invoice
Um gatilho é função e pode operar em qualquer outra mesa, além da que está anexada.