Todas as minhas sugestões quanto a modelagem, não envolvem a linguagem, e sim, o bom senso em criar tabelas utilizando conceitos de normatização conhecidos e aprendidos na universidade.
Se deseja seguir rigidamente o seu conceito de normatização (gostaria de conhecer documentação séria a respeito desse conceito que utiliza) é uma questão sua pessoal que todos devemos respeitar, só que acredito encontrar menos respostas a seus tópicos em função disso.
O Scriptcase (PHP) não tem nada a ver com a modelagem, pode utilizar seus modelos sem problema.
Tentarei sempre mostrar os caminhos na programação utilizando seus modelos.
Supondo:
Tabela Fornecedores
Tabela Clientes
Tabela Funcionários
Tabela Endereços
- Entende-se que a relação seja 1 x 1 em fornecedores,clientes e funcionarios com endereços.
Aplicação Fornecedores
Aplicação Clientes
Aplicação Funcionarios
Montando esquema para gravação alteração e exclusão do endereço para o cadastro de fornecedores (as demais aplicações o trabalho será o repetido)
Na aplicação criar campos virtuais (manuais) para endereço.
Situação novo registro:
na onafterinsert:
verificar se campos do endereço possuem dados, se sim, pegar o id do fornecedor gerado:
- Sugestão para sistema multi-usuário (ter um campo em fornecedor com a sessão do php, e usar um select max(id) from fornecedor qhere sessao_php=’$_sessao’
Com o id do fornecedor inserir os dados na tabela de endereço tipificando o endereço como sendo de fornecedor.
Situação Edição de registro.
No evento onload:
Ler o endereço do fornecedor em questão e alimentar manualmente todos os campos virtuais.
Guardar o id do endereço em global (vai precisar mais tarde)
No evento onafterupdate:
- Testar se houve alguma alteração nos campos virtuais, se sim proceder o update na tabela de endereços
Situação Deleção de registro:
OnBeforeDelete:
Com o id do endereço proceder a deleção na tabela de endereços.
*Ufa, cansei de escrever, imagino ao programar como vai ser.
Mas aí está solução programando em SC.