Prezados, estou aqui novamente pra pedir ajuda,
Estou ajustando alguns relacionamentos de meu aplicativo da forma abaixo:
Requisições -> Itens (integridade referencial para atualização e exclusão):
- Nem toda requisição precisa possuir um item;
- Todos os itens devem estar vinculados obrigatoriamente a uma requisição existente na tabela Requisições;
Pedidos -> Itens (integridade referencial para atualização somente):
- Nem todo pedido precisa possuir um item;
- Nem todo item precisa possuir um pedido mas caso possua este deve estar vinculado a um pedido existente na tabela Pedidos;
Processo -> Itens (integridade referencial para atualização somente):
- Nem todo processo precisa possuir um item;
- Nem todo item precisa possuir um processo mas caso possua este deve estar vinculado a um processo existente na tabela Processos.
Os campos chave Requisição e Pedido são do tipo numérico e eu consegui impôr a integridade referencial normalmente porém, o campo Processo é do tipo String, e neste caso, eu só consigo fazer um relacionamento simples, sem integridade. Na verdade, eu até consigo fazer a integridade, porém não posso deixar nenhum dos registros da tabela Itens com o campo Processo vazio.
Simplificando: 1 requisição está vinculada a vários itens que podem ou não estar vinculados a algum processo ou a algum pedido como abaixo:
Requisição / Item / Processo / Pedido
3000076258 / 1 / PE.CSCS.A.00059.2013 / 8000006698
1100000570 / 1 / PE.CSCS.A.00059.2014 /
3000113974 / 7 / /
Alguém aí entendeu minha dúvida e pode me ajudar? Estou tentando melhorar os relacionamentos para aumentar a segurança do BD para evitar registros órfãos e melhorar a velocidade das consultas mas caso o campo String não permita isto eu vou acabar perdendo a modificação em cascata da tabela Processos.
Conto com vocês. Obrigado.
Estou ajustando alguns relacionamentos de meu aplicativo da forma abaixo:
Requisições -> Itens (integridade referencial para atualização e exclusão):
- Nem toda requisição precisa possuir um item;
- Todos os itens devem estar vinculados obrigatoriamente a uma requisição existente na tabela Requisições;
Pedidos -> Itens (integridade referencial para atualização somente):
- Nem todo pedido precisa possuir um item;
- Nem todo item precisa possuir um pedido mas caso possua este deve estar vinculado a um pedido existente na tabela Pedidos;
Processo -> Itens (integridade referencial para atualização somente):
- Nem todo processo precisa possuir um item;
- Nem todo item precisa possuir um processo mas caso possua este deve estar vinculado a um processo existente na tabela Processos.
Os campos chave Requisição e Pedido são do tipo numérico e eu consegui impôr a integridade referencial normalmente porém, o campo Processo é do tipo String, e neste caso, eu só consigo fazer um relacionamento simples, sem integridade. Na verdade, eu até consigo fazer a integridade, porém não posso deixar nenhum dos registros da tabela Itens com o campo Processo vazio.
Simplificando: 1 requisição está vinculada a vários itens que podem ou não estar vinculados a algum processo ou a algum pedido como abaixo:
Requisição / Item / Processo / Pedido
3000076258 / 1 / PE.CSCS.A.00059.2013 / 8000006698
1100000570 / 1 / PE.CSCS.A.00059.2014 /
3000113974 / 7 / /
Alguém aí entendeu minha dúvida e pode me ajudar? Estou tentando melhorar os relacionamentos para aumentar a segurança do BD para evitar registros órfãos e melhorar a velocidade das consultas mas caso o campo String não permita isto eu vou acabar perdendo a modificação em cascata da tabela Processos.
Conto com vocês. Obrigado.