Confundindo normalização de banco de dados com classes

17/09/2008

0

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


Gil2008

Gil2008

Responder

Posts

17/09/2008

Fabriciok

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.


Responder

17/09/2008

Gil2008

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?


Responder

17/09/2008

Fabriciok

Genericamente falando, seria

Nome: String;
Nascimento: Date;
Endereco: List<TEndereco>;

o endereço é um conjunto de objetos do tipo Endereço.


Responder

17/09/2008

Gil2008

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!


Responder

17/09/2008

Fabriciok

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];


Responder

17/09/2008

Gil2008

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!!


Responder

17/09/2008

Adoniram

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.


Responder

14/03/2010

Eleuterio Gonzalez

Crie uma nova classe endereço
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar