Cadastrando duas tabelas relacionadas ao mesmo tempo

6 respostas
R

Bom dia, estou fazendo um programa e em um de seus cadastros tenho que cadastrar pessoas(id, nome, idade, pai, mae,nascimento, etc) e endereço(rua, numero, bairro, etc).
Tenho que ter um cadastro de pessoas, mas tb quero poder selecionar por exemplo todas pessoas que fazem parte de um mesmo endereço.
Estou usando um JTABBEDPANE, com duas guias, uma para Pessoa e outra para Endereço, na guia Endereço tenho uma JTable com todas pessoas cadastradas nesse mesmo endereço para serem melhor visualidas.

Gostaria de saber se estou no melhor caminho ou se alguém teria um idéia melhor para o cadastro de pessoas, visto que cada pessoa tem um endereço que pode ou não ser o mesmo de outra, e pessoa e endereço são tabelas diferentes, faço tudo numa frame? continuo usando o JTabbedPane ?

Obrigado.

6 Respostas

drsmachado

A relação entre pessoa e endereço é sempre um tema de discórdia.
Eu prefiro a abordagem que cada pessoa pode ter vários endereços (residencial, comercial) e cada endereço pode conter várias pessoas (uma família, por exemplo).
Sendo assim, o relacionamento é N : N e será preciso criar uma tabela associativa, que contenha uma FK para a PK de pessoa e outra FK para a PK de endereço. Ambas podem ser PK composta ou, como eu prefiro, cria-se uma coluna apenas para ser a PK desta tabela associativa (pois PKs compostas geralmente dão mais dor de cabeça que ajudam).
Aí você que decide.

R

Concordo, tem várias opções, mas e quanto a parte visual do cadastro das tabelas?

Cadastro endereço primeiro, pessoa primeiro ? Juntos um em cada aba da TabbedPane, ou numa tela só para o usuário(já que ele não precisa saber q são 2 tabelas).

É que não vi uma solução bem prática ainda na parte do cadastro.

Obrigado.

CristianPalmaSola10

Eu concordo com o drsmachado, sempre trato pessoa e endereço em meus projetos dessa forma, pois é a realidade, uma pessoa tem varios endereços e varias pessoa tem o mesmo endereço, quem mora com os pais, o endereço deles é o mesmo

eu trato dessa maneira por ser o que realmente acontece no mundo real, mas vai de cada um

drsmachado

rdkw2009:
Concordo, tem várias opções, mas e quanto a parte visual do cadastro das tabelas?

Cadastro endereço primeiro, pessoa primeiro ? Juntos um em cada aba da TabbedPane, ou numa tela só para o usuário(já que ele não precisa saber q são 2 tabelas).


A parte visual não tem nenhuma relação com o banco de dados, exceto o fato de usar/fornecer as informações que o banco manterá.

Ainda não viu? Por onde andou nos últimos 30 anos? Qualquer cadastro, por mais furreca que seja, apresenta opções para isso.
A pergunta é: o endereço vai ser cadastrado a parte? Ou ele será um atributo do cliente, mesmo sendo uma lista?
Se ele for cadastrado à parte, tem lógica querer realizar o seu cadastro primeiro, senão, está sendo claramente displicente.
Ou você já vai atender o cliente dizendo “me informa teu endereço”, sem saber se ele porta todos os documentos que serão, eventualmente, necessários para um cadastro?
Aliás, uma boa idéia é baixar e instalar algum sistema de cadastro, ver como ele trata e colocar da forma que você julgar melhor.

R

Calma !!! kkkk

drsmachado

Engraçado que as pessoas confundem objetividade com nervisismo e stress.
Como você pretende desenvolver um sistema se não conhece a estrutura do mesmo?
Regras de negócio, definições de telas e uma outra série de coisas que são fundamentais precisam estar determinadas antes de iniciar a codificação, sob risco de não conseguir finalizar, pois não fez um bom planejaento.
Aí você me diz “meu produto será único no mercado, o primeiro do gênero”. E eu respondo, para criar um sistema, deve haver uma demanda, alguém viu a necessidade deste ser criado e, portanto, esse alguém imagina como a interface dele deve ser, logo, é plenamente possível pensar e planejar sua construção.

Criado 24 de julho de 2012
Ultima resposta 24 de jul. de 2012
Respostas 6
Participantes 3