[firebase-br] Chave estrangeira unica

Sandro Souza escovadordebits em gmail.com
Sex Abr 15 17:09:31 -03 2011


Bom dia/tarde Raul.

O nosso amigo Paulo Portella detalhou bem um exemplo, e criou a chave
estrangeira "fk_B" que é justamente a referência de B para A:

alter table b add constraint fk_B foreign key (id_A) references A (id) on
delete cascade on update cascade;

Como a chave primária da tabela B é o campo/coluna "id_a", e por regra não
pode haver repetições dos valores da chave primária, acabou resolvendo a
questão perfeitamente, ou seja, só pode haver um único registro em B que
corresponda a um registro em A.

O nosso amigo Paulo Geloramo, também contribuiu com outra solução, criando
um índice único na tabela B p/ que não hajam dois ou mais registros da
tabela B para o registro da tabela A:

CREATE UNIQUE INDEX UK_CAMPO ON TABELA_B (CAMPO);

Nesse caso, uma regra de unicidade (unique) também seria idêntica a esse
índice único, ou seja:

ALTER TABLE TABELA_B ADD CONSTRAINT UK_CAMPO UNIQUE(CAMPO);

daria o mesmo efeito.

Só tem gente ninja nesse fórum. :D

Os Paulos que o digam.

Em 15 de abril de 2011 16:26, Raul Geraldin <rgeraldin em gmail.com> escreveu:

> Ok, mais onde está a referencia da B para A??
>
>
>
>
> Em 15 de abril de 2011 16:18, Paulo Portella
> <pportellaa.firebase em gmail.com>escreveu:
>
> > //Tabela A pode ter quantos registros quiser, sem depender da B existir.
> > Create table A (
> > id integer not null,
> > descricao varchar(50));
> >
> > alter table a add constraint pk_A primary key (id);
> >
> > create table B (
> > id_a integer not null,
> > descricao_B varchar(50));
> >
> > alter table b add constraint pk_B primary key (id_a);
> > // Tabela B pra existir o registro, a referência PRECISA existir na
> Tabela
> > A
> > alter table b add constraint fk_B foreign key (id_A) references A (id) on
> > delete cascade on update cascade;
> >
> >
> > Vida de americano é assim: iPhone, iPod, iPad, iMac….
> > Já a de brasileiro é assim:IPTU, IPVA, ICMS, IPI etc
> >
> >
> > Em 15/04/2011 16:05, Raul Geraldin escreveu:
> >
> >> Srs., boa tarde, estou com o seguinte problema:
> >>
> >> tenho duas tabela A e B, com o relacionamento 1 para 1, porém a PK da
> >> tabela
> >> A que está como FK na tabela B tem que ser unica.
> >>
> >> Posso ter resgitro na tabela A que não exista na B, porem não posso ter
> >> registro na B sem o registro da A, e o mesmo tem que ser unico na B,
> >> pois naõ posso ter o mesmo gistro da tabela A repetido na tabela B.
> >>
> >>
> >> Como resolver isso da melhor forma ?
> >> ______________________________________________
> >> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >> http://www.firebase.com.br/fb/artigo.php?id=1107
> >> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >>
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista