Confundindo normalização de banco de dados com classes
Olá a todos!!
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
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
Curtidas 0
Respostas
Fabriciok
17/09/2008
Bom cara, nesse caso ´endereço´ vira uma Classe.
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.
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.
GOSTEI 0
Gil2008
17/09/2008
Apenas pra eu fixar a idéia:
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?
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?
GOSTEI 0
Fabriciok
17/09/2008
Genericamente falando, seria
Nome: String;
Nascimento: Date;
Endereco: List<TEndereco>;
o endereço é um conjunto de objetos do tipo Endereço.
Nome: String;
Nascimento: Date;
Endereco: List<TEndereco>;
o endereço é um conjunto de objetos do tipo Endereço.
GOSTEI 0
Gil2008
17/09/2008
Fiquei um pouco confuso agora, o que significa conjunto de objetos?
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!
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!
GOSTEI 0
Fabriciok
17/09/2008
Essa estrutura já te dá suporte a gravar numa tabela Alunos_Enderecos.
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];
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];
GOSTEI 0
Gil2008
17/09/2008
Interessante cara, não sabia que isso era possível de ser feito. Vou tentar transportar isso pro VB e caso eu ainda fizer confusão eu posto novamente.
Grande abraço fabriciok, valeu msm!!
Grande abraço fabriciok, valeu msm!!
GOSTEI 0
Adoniram
17/09/2008
Só uma dica.
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.
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.
GOSTEI 0
Eleuterio Gonzalez
17/09/2008
Crie uma nova classe endereço
GOSTEI 0