1
resposta

Tipo de Herança

Olá. Estou tentando modelar um banco Entidade-Relacionamento mas estou confuso em uma herança. Tenho a seguinte situação:

Uma empresa tem vários tipos de funcionários onde preciso armazenar informações de nome e cpf. Para os Contadores eu quero armazenar TAMBÉM o CRC e para o Advogado o número da OAB. Os demais funcionários quero armazenar apenas o nome e cpf. Como eu desenharia este caso? Seria uma generalização ou especialização? E como ficaria meu relacionamento e minha PK e FK?

1 resposta

Oi Carlos, tudo bem?

Recomendo criar uma tabela ‘pessoa’ com a coluna ‘tipopessoa’, o tipo pessoa seria utilizado para trazer quais dados serão preenchidos, exemplo: se for uma pessoa jurídica, será necessário preencher cnpj, data de abertura, inscrição municipal e tals. Um contador pode ser PJ (pessoa jurídica/empresarial) ou pode ser PF (pessoa física/cidadão).

Um advogado além da OAB ainda possui cpf e se utilizarmos a oab em um cadastro e o cpf em outro pode haver a duplicação de dados. Criaremos a tabela ‘funcionarios’ e dentro da tabela funcionario colocar cargo / e abaixo o documento da profissão e o relacionamento pode ser feito com o ‘idpessoa’ que seria PF na tabela ‘pessoa’ e FK na tabela ‘funcionario’.

Seria uma generalização/especialização parcial. Nem toda ocorrência da entidade genérica possui uma ocorrência correspondente em uma entidade especializada, ou seja, nem todo funcionário é contador e nem todo funcionário é advogado. Podem haver funcionários que não sejam nem contador e nem advogado.

Um exemplo da tabela ‘funcionarios’:

  • departamento
  • função ou cargo
  • documento
  • tipo documento

Espero ter ajudado, bons estudos! :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software