Confundindo normalização de banco de dados com classes
17/09/2008
0
Fico muito feliz em fazer parte do fórum e quero ajudar sempre que possível.
A minha dúvida é a seguinte Eu tenho 3 objetos: [b:4fc85ca7e2]alunos[/b:4fc85ca7e2], [b:4fc85ca7e2]professores [/b:4fc85ca7e2]e [b:4fc85ca7e2]responsáveis[/b:4fc85ca7e2], que fazem parte da classe [b:4fc85ca7e2]pessoas[/b:4fc85ca7e2]. Segundo as formas normais de banco de dados, uma pessoa pode ter mais um endereço. Pergunto: [b:4fc85ca7e2]endereço [/b:4fc85ca7e2]será uma propriedade da classe pessoa ou endereço será uma nova classe que terá uma ligação com a classe pessoa? Ou nenhuma das alterantivas?
Ainda nas formas normais, com relação a banco de dados, eu criaria por exemplo a tabela alunos, a tabela endereços e a tabela assossiativa alunos_endereços. Na hora de escrever as classes, eu criaria uma classe pessoa, uma classe alunos, uma classe endereços e uma classe alunos_endereços?
Esse negócio confunde muito!!! Quem puder me ajudar serei totalmente grato.
Abraços
Gil
Gil2008
Posts
17/09/2008
Fabriciok
Na classe PESSOA, vc adiciona um atributo ´endereço´ que será uma Lista de objetos do tipo ENDERECO.
E na hora de gravar isso num BD, vc varre o ´endereço´, e para cada item da lista vc salva na tabela pessoa_endereço.
Att.
17/09/2008
Gil2008
Eu crio uma classe chamada Endereço.
Ae lá no diagrama de classe, quando eu colocar os atributos, eu escrevo algo assim:
Nome:String
Nascimento:Date
Endereco:Endereco
Correto?
17/09/2008
Fabriciok
Nome: String;
Nascimento: Date;
Endereco: List<TEndereco>;
o endereço é um conjunto de objetos do tipo Endereço.
17/09/2008
Gil2008
E pra encerrar o tópico: eu preciso ter uma [b:312ad60dba]classe [/b:312ad60dba]chamada Alunos_Enderecos ou essa estrutura já me dá suporte para eu gravar o dado na [b:312ad60dba]tabela [/b:312ad60dba]Alunos_Enderecos
Obrigado!
17/09/2008
Fabriciok
Resumindo, por exemplo, vamos supor q vc crie 3 objetos (end1, end2, end3) do tipo ENDERECO que seriam os 3 endereços de um ALUNO (um conjunto).
Ex. didático:
Nome:= ´Manoel´;
Idade:= 25;
Endereco:= [end1, end2, end3];
17/09/2008
Gil2008
Grande abraço fabriciok, valeu msm!!
17/09/2008
Adoniram
Evita recriar a estrutura do banco de dados nas suas classes. Elas foram criadas para serem mais ´inteligentes´ e terem mais ´responsabilidades´ do que a simples persistência dos dados em memória.
Espero ter contribuído de alguma forma.
Abraço.
Clique aqui para fazer login e interagir na Comunidade :)