Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal:
Embora já uso BD há algum tempo e já tenha um conhecimento básico na criação de tabelas e relacionamentos tenho algumas dúvidas ainda: :ermm:
Tenho uma tabela de fornecedores, descrita abaixo:
fornecedor
--------------
Tenho também uma tabela de tipo de fornecedores, descrita abaixo também:
tipofornec
------------
O campo codtipo na tabela de fornecedor é uma chave estrangeira da tabela tipofornec.
Entretanto, as vezes o usuário não sabe qual é o tipo do fornecedor e precisa de deixá-lo em branco ao gravar.
Se eu mover NULL ao fazer o INSERT, o BD mostra erro de integridade, pois não irei ter cadastrado o tipo de fornecedor NULL.
Então, o que faço quando isso acontece é, ao montar o sql de inclusão, mover 0 para o campo codtipo, sendo que o código 0 existe na tabela de tipo de fornecedores. Para listar a tabela de tipo de fornecedores, sou obrigado sempre adicionar no WHERE que o tipo de fornecedor seja maior que zero.
Nas databases que eu já desenvolvi, sempre usei controle de integridade entre as tabelas, logo, todas as minhas tabelas auxiliares tinham o código zero.
Geralmente, costumo fazer conversões de banco de dados e já vi varias databases cujo tabelas não possuiam nenhum controle de integridade, então até hoje não vi outra forma de fazer este controle.
Embora isto já esteja funcionando, eu gostaria de saber se esta é a forma correta de fazer este tipo de controle de integridade.
Se for possível, será que alguém poderia me informar alguma documentação para que eu possa aprender melhor sobre os controles de integridades entre chaves estrangeiras?
Muito obrigado pela atenção.
Hudson
Carregando comentários...