Ir ao conteúdo
  • Cadastre-se

Implementação de superentidade


Posts recomendados

Boa tarde prezados.

Pessoal é o seguinte:
Tenho estado a estudar banco de dados e c#.
No processo de modelagem do banco, deparei-me com a situação de uma SUPER-ENTIDADE ( no caso PESSOA) com as SUB-ENTIDADES (ALUNO, DOCENTE e FUNCIONARIO).
Gostaria de saber como faço a implementação das entidades acima mencionadas.

 

Espero ter sido explícito e desde já agradeço antecipadamente a vossa ajuda.

 

Paz e Amor a todos.

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Kamutra Olá, você precisa dar mais informações sobre a sua dúvida.

 

A implementação é referente a linguagem de programação C# ou a banco de dados?

Se for sobre a linguagem C#, eu preciso mover para o setor correto.

 

Agora se for referente a modelagem do banco de dados em específico, aí você precisa dar mais informações e dizer onde exatamente é a sua dúvida. Porque aparentemente é um exercício/trabalho e não podemos simplesmente dizer como fazer ou onde  fazer.  É preciso que você explique passo a passo a sua ideia de como pode chegar na resolução do problema. Quais entidades devem ser criadas, quais atributos e campos devem ser criados, como pode ser a relação destas tabelas... e etc

 se estiver errado auxiliamos e corrigimos.

 

Certo de sua compreensão,

Aguardo o retorno.

Link para o comentário
Compartilhar em outros sites

18 horas atrás, DiF disse:

@Kamutra Olá, você precisa dar mais informações sobre a sua dúvida.

 

A implementação é referente a linguagem de programação C# ou a banco de dados?

Se for sobre a linguagem C#, eu preciso mover para o setor correto.

 

Agora se for referente a modelagem do banco de dados em específico, aí você precisa dar mais informações e dizer onde exatamente é a sua dúvida. Porque aparentemente é um exercício/trabalho e não podemos simplesmente dizer como fazer ou onde  fazer.  É preciso que você explique passo a passo a sua ideia de como pode chegar na resolução do problema. Quais entidades devem ser criadas, quais atributos e campos devem ser criados, como pode ser a relação destas tabelas... e etc

 se estiver errado auxiliamos e corrigimos.

 

Certo de sua compreensão,

Aguardo o retorno.

Caro @DiF

Obrigado pela pronta resposta.

A minha questão na verdade prende-se com ambas as situações, tanto C# como banco de dados. Acredito que se aprender a fazer no banco de dados, a resolução no C# será apenas um passo.
Acontece que não tenho dúvidas sobre o assunto. A verdade é que não sei mesmo como proceder.
Quando se trata de entidades simples sei como fazer.
Por exemplo a entidade cliente e a entidade factura que supostamente devem estar relacionadas, eu faria assim:

create table tblCliente
(
    IdCliente int identity(1,1) not null,
    Nome varchar(50),
    Morada varchar (100),
    Telefone varchar(20),
    constraint pk_Clientes primary key(IdCliente
)
  
GO
  
create Table tblFactura
(
    NFactura int identity(1,1) not null,
    IDCliente int not null,
    MesAPagar varchar(20),
    ValorAPagar decimal (10,2),
    DataLimitePagamento datetime,
    EstadoFactura varchar(9),
    constraint pk_Facturas primary key (NFactura),
    constraint fk_Factura_Cliente foreign key (IdCliente) references tblClientes(IdCliente)
)

No meu caso me deparei com uma situação em que existe uma SUPER-ENTIDADE ( no caso PESSOA) com as SUB-ENTIDADES (ALUNO, DOCENTE e FUNCIONARIO), que têm atributos em comum.
O que eu gostaria de saber é como implementar isto no banco de dados, a exemplo das entidades CLIENTE E FACTURA.

Desde já agradeço a vossa disponibilidade em explicar como proceder.
Paz, Amor e Luz.

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Kamutra 

No caso a super-entidade pessoa, pode ser uma terceira tabela. 

Segundo as 1NF e 2NF, podes criar esta tabela para não gerar inconsistência de dados.

 

Então podes criar uma tabela assim chamada Pessoas:

ID(int) auto increment

Pessoa(varchar)

 

Nela você armazena 3 resgistros: Aluno, docente e funcionário.

 

Na sua tabela cliente você recebe por chave estrangeira o ID do registro da tabela pessoa indicando se ela é um aluno, docente ou funcionário.

 

Já na parte do C#, não programo nesta linguagem, mas provavelmente você terá que criar uma classe para pessoa e depois estender a classe(herdar os métodos da superclasse). Como aqui é o foco de banco de dados, vamos ficar só pelas informações de banco de dados. caso necessite você pode abrir um novo tópico sobre este assunto mas com foco totalmente na linguagem C#. Para isso existe o setor C/C#/C++ ! 

Link para o comentário
Compartilhar em outros sites

Em 02/12/2016 às 17:16, DiF disse:

@Kamutra 

No caso a super-entidade pessoa, pode ser uma terceira tabela. 

Segundo as 1NF e 2NF, podes criar esta tabela para não gerar inconsistência de dados.

 

Então podes criar uma tabela assim chamada Pessoas:

ID(int) auto increment

Pessoa(varchar)

 

Nela você armazena 3 resgistros: Aluno, docente e funcionário.

 

Na sua tabela cliente você recebe por chave estrangeira o ID do registro da tabela pessoa indicando se ela é um aluno, docente ou funcionário.

 

Já na parte do C#, não programo nesta linguagem, mas provavelmente você terá que criar uma classe para pessoa e depois estender a classe(herdar os métodos da superclasse). Como aqui é o foco de banco de dados, vamos ficar só pelas informações de banco de dados. caso necessite você pode abrir um novo tópico sobre este assunto mas com foco totalmente na linguagem C#. Para isso existe o setor C/C#/C++ ! 

 

Grande @DiF.

Muito mas muito obrigado mesmo pelo apoio pontual.
Percebi o que deve ser feito, e com alguma leitura de outras matérias estou certo de que resolverei a questão.
Sobre o C#, se necessário for, não hesitarei em pedir ajuda.
Grato a todos.

 

Muita Paz, Amor e Luz.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...