Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carlos Antoliv

Crio Três tabelas se relacionando com a tabela de usuário para login ou tudo numa tabela só?

Recommended Posts

Caros colegas, é mais uma dúvida de modelagem em sim do que script. A solução pode ser subjetiva. Acredito que alguém já tenha passado por essa experiência. Só tem fera nesse fórum.

 

CENÁRIO:

 

Tenho três tipos de usuários distintos:       funcionario / cliente /  grupo     - são três tabelas que possuem apenas algumas informações diferentes, como (cpf, matrícula), (cnpj) e (cnh), respectivamente. Esta é a diferença básica. Essas três entidades são também usuários do sistema. Portanto, eles farão login no sistema. Ciei uma outra tabela e coloquei "tipo de acesso".

Exemplo:

- usuário: nivel 1, nivel 2, funcionario e gerente;

- cliente: cliente;

- grupo: motoristas;

 

 

.... e qual é a minha duvida? É se coloco tudo numa tabela só ou separo, como estou fazendo? Estou colocando as tabelas funcionario, cliente e grupo se relacionando com a tabela usuário. Assim, na tela de cadastro, por exemplo, "cliente", a estrutura da modelagem fica mais ou menos assim:

 

TB_FUNCIONÁRIO

- nome                     - tb_funcionario

- cpf                        - tb_funcionario

- matricula             - tb_funcionario

- nome_usuario     - tb usuario

- senha_usuario    - tb_usuario

- email_usuario     - tb_usuario

- contato_usuário - tb_usuario

 

TB_CLIENTE

- nome                     - tb_cliente

- cnpj                        - tb_cliente

- nome_usuario     - tb usuario

- senha_usuario    - tb_usuario

- email_usuario     - tb_usuario

- contato_usuário - tb_usuario

 

 

TB_GRUPOS

- nome                     - tb_grupo

- cnh                        - tb_grupo

- nome_usuario     - tb usuario

- senha_usuario    - tb_usuario

- email_usuario     - tb_usuario

- contato_usuário - tb_usuario

 

 

 

Na hora de cadastrar um dos três, salvo o "id_usuario" na tabela do funcionario, cliente ou grupo.

 

O que vocês acham? Fariam assim também ou teria alguma outra ideia que possa não prejudicar o banco? Porque meu receito é a gama de informações que vai para o banco. Se eu colocar tudo numa tabela só, alguns campos serão inseridos vazios, ocupando um certo espaço. Entendem? Por isto fiz essa separação. 

 

Ideia são sempre bem vidas :D

abço

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria em uma tabela só. Visando que todas três tabelas são praticamente idênticas

No caso das colunas cpf/cnpj/cnh poderia criar uma documento_id e salvar os valores, tambem criaria uma coluna só para o tipo se é funcionário, cliente ou grupo.

nome

tipo                     - Salvaria se é Funcionário, Cliente e Grupo 

documento_id  - Salvaria CPF CNPJ e CNH

matricula

nome_usuario

senha_usuario

email_usuario

contato_usuário

Compartilhar este post


Link para o post
Compartilhar em outros sites

Omar, vlw pela resposta. Vamos ver se eu entendi...
documento_id seria o campo que poderia armazenar um dos três valores: CPF, CNPJ E CNH. No caso, para armazenar esse valor a pessoa poderia escolhê-lo a partir de um listbox? É isto? Não sei se essa é extamente o que você quis dizer... fui apenas suponto... mas, talvez, seria uma boa saída....rs


....mas veja bem, matrícula ficaria sobrando, portanto um campo vazio na tabela prq somente funcionário possuiria esste campo.  Estava pensando em naõ deixar nenhum campo vazio. O que acha?

 

Entendi tua ideia... no começo cheguei até pensar, mas acabei me esquecendo...rs .. 


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.