RELACIONAMENTO ENTRE TABELAS SQL SERVER MANAGEMENT
11/07/2014
0
Tenho uma dúvida em relação a cardinalidade no sqlserver;;; Não consigo criar a relação CASO X PESSOA_FISICA e nem CASO X PESSOA_PJ, agúem me ajude
São 3 tabelas;
USUARIO(COD_USUARIO, NOME, SENHA);--- PRIMARY (COD_USUARIO)
CASO(COD_CASO, COD_USUARIO, NOME_CASO, COD_PF, COD_PJ);------ PRIMARY(COD_CASO);
PESSOA_FISICA (COD_PF, NASC, NOME, RG, CPF);------PRIMARY KEY(COD_PF);
PESSOA_PJ (COD_PJ, NOME, CNPJ, ABERTURA); ------PRIMARY KEY(COD_PJ);
Um usuario pode cadastrar vários casos;
Um caso pode ter 1 ou várias pessoas físicas e 0 ou várias pessoas jurídicas;
Silvane
Posts
11/07/2014
Isaac Jose
mais por exemplo por que criar cod_pf e cod_pj . nesses casos eu crio um campo com o nome Tipo e ai atribuo J OU P pois com o campo cpf e cnpj e cnpj ja se consegue o relacionamento..,
11/07/2014
Silvane
11/07/2014
Isaac Jose
nao precisa... se vc tiver uma tabela de cadastro.. acrescente o campo tipo, como char de 2 e atribua pf ou pj
11/07/2014
Joel Rodrigues
USUÁRIO, CASO, PESSOA e CASO_PESSOA.
Em PESSOA basta colocar um campo para identificar o tipo, como já foi dito acima. Em CASO_PESSOA fica os registros que relacionam CASO com PESSOA, contendo as PKs das duas tabelas.
14/07/2014
Silvane
Eu coloquei duas tabelas uma para pessoa física e outra para pessoa jurídica pq os campos relacionados a pessoa física são diferente do pessoa jurídica. Por essa razão eu não sei se é possível criar uma tabela única para PESSOA se os campos relacionados aos tipos de pessoa são diferente.
PESSOA_FISICA (COD_PF, NASC, NOME, RG, CPF);
PESSOA_PJ (COD_PJ, NOME, CNPJ, DATA_ABERTURA);
14/07/2014
Alex Lekao
Acredito que ja foi dito antes.
Mas o ideal seria um cadastro unico e ter um campo para identificar o tipo de pessoa fisica ou jurida, e o campo seria por exemplo CPFCNPJ ou CNPJCPF e vc pode utilizar algo de checagem para se o pessoa for F nao aceitar uma quantidade superior a 11 caracteres, acho que eh essa a quantidade e se for juridica sempre ser igual a 14, coisas deste tipo.
Ou esse tratamento ser feito na aplicacao, desta forma a sua normalizacao ficara melhor e tera uma possivel economia de espaco em disco, pequeno mas possivelmente tera. rsrs
Espero ter ajudado.
Abraco.
15/07/2014
Silvane
15/07/2014
Alex Lekao
Esse dados que distringuem vc pode usar uma tabela auxiliar com esses dados, assim acredito ainda, que sua normalizacao fique melhor.
A data de nascimento depende de tratativa na aplicacao para usar nascimento ou fundacao, pensando em fisica e juridica, se isso for importante para o caso de juridica, caso contrario o campo preenche com outra data que for mais conveniente.
Abraco.
17/07/2014
Isaac Jose
Eu coloquei duas tabelas uma para pessoa física e outra para pessoa jurídica pq os campos relacionados a pessoa física são diferente do pessoa jurídica. Por essa razão eu não sei se é possível criar uma tabela única para PESSOA se os campos relacionados aos tipos de pessoa são diferente.
PESSOA_FISICA (COD_PF, NASC, NOME, RG, CPF);
PESSOA_PJ (COD_PJ, NOME, CNPJ, DATA_ABERTURA);
Vc pode colocar na tabela de cadastro CLIE_PESS_COMPLEMENTO.. para identificar o nome seja Fisico ou juridico. e criar os campo cpf_cnpj -- que é composto pelo corpo de um ou de outro, campo filial , campo controle, e o campo Tipo , PF ou PJ, esses campo que sao nome de parentes ou de empresas filiais ou dados de empresas vc pode colocar em tableas diferentes e colocar nelas os campos PF e PJ para quando precisar fazer o relacionamento e trazer os mesmo. como campo com comparações atraves de letras e mais demorado vc pode atribuir para o campo Tipo 0 para PF e 1 para PF e assim por diante....
espero que auxilie ...
att Isaac
Clique aqui para fazer login e interagir na Comunidade :)