Inserir dados em duas tabelas
No banco de dados eu tenho uma tabela de informações pessoais e outra de endereços.Na prática tem a possibilidade de encontrarmos mais de uma pessoa no mesmo endereço, então no relacionamento entre as duas tabelas eu defini como chave primária na tabela de endereços e chave estrangeira na tabela de informações pessoais.
Em um WebForm de Cadastro eu tenho campos que contem informações pessoais e de endereço.
Estou em dúvida neste webform, erá que preciso fragmentá-lo? Eu preciso primeiro cadastrar o endereço e depois as informações pessoais?
Editado Wilson Boris terça-feira, 18 de junho de 2013 11:36 adequação
terça-feira, 18 de junho de 2013 11:31
Teoricamente este tipo de abordagem é um relacionamento N-N, pense assim: Um endereço pode conter mais de uma pessoa (Uma família por exemplo), mas uma pessoa também pode possuir mais de um endereço.
Em relacionamentos N para N (N-N), você teria a tabela Pessoas com seu id, a tabela Endereço com seu ID e uma tabela auxiliar intermediaria podendo ser chamada de Pessoa_Endereco, contendo apenas os 2 ID´s das outras tabelas, dessa forma seria possível uma pessoa ter mais de um endereço e um endereço pertencer a mais de uma pessoa.
Quanto ao seu form, não vejo isso como uma regra se deve segmentar ou não. Tudo depende do seu negocio, eu particularmente colocaria o endereço no form principal caso o endereço seja uma informação vital para o negocio (Correio por exemplo), caso contrario colocaria um form apartado com um link no principal.
Quanto a prioridade da informação, também depende de seu negocio, você pode cadastrar pessoa sem endereço? e endereço sem pessoa? Pense nisso, responda essas questões e veja a melhor abordagem.
Marcado como Resposta Wilson Boris terça-feira, 18 de junho de 2013 11:50
terça-feira, 18 de junho de 2013 11:47
Wilson, se a sua PK esta na tabela de endereços e tem uma FK referenciada na tabela de informações pessoais, voce até pode fazer na mesma webform, porem o primeiro insert seria na tabela de endereços e depois nas de informações pessoais...