[firebase-br] Chave Primária Composta (Pros/Contra)
Eduardo Bahiense
eduardo em icontroller.com.br
Ter Mar 4 13:41:41 -03 2008
Só uso compostas pelo simples motivo de evitar excesso de metadata.
Se três campos determinam a unicidade de um registro, porque devo criar
um quarto para servir de chave primária e mais um índice unique, se uma
constraint pk resolve.
Nossas bases atingem de 3 a 4 GB com mais de 350 tabelas. Não tenho o
que reclamar de performance e estabilidade. Nunca tivemos corrupção de base.
Abs
Eduardo
HPensador escreveu:
> Bom dia Colegas!
>
> Gostaria da opinião de vocês sobre a questão de se utilizar chave
> primária composta.
>
> Create table exemplo1 (
> cod_tab1 integer not null,
> descricao varchar(40) not null,
> constraint pk_exemp1 primary key(codigo)
> )
>
> Create table exemplo2 (
> cod_tab2 integer not null,
> cod_tab1 integer not null,
> descricao varchar(40) not null,
> constraint fk_tab2_tab1 foreign key (cod_tab1) references exemplo1
> (cod_tab1) on update cascade,
> contraint pk_exemp2 primary key (cod_tab1, cod_tab2)
> )
>
> Create table exemplo3 (
> cod_tab3 integer not null,
> cod_tab2 integer not null,
> cod_tab1 integer not null,
> descricao varchar(40) not null,
> constraint fk_tab3_tab2 foreign key (cod_tab2) references exemplo2
> (cod_tab2) on update cascade,
> constraint fk_tab3_tab1 foreign key (cod_tab1) references exemplo1
> (cod_tab1) on update cascade,
> constraint pk_exemp3 primary key (cod_tab1, cod_tab2, cod_tab3)
> )
>
> Nobres colegas este exemplo retrata um situação atual que estou vivendo
> e não sei como poderia modificar essa estrutura. Já tentei utilizar
> Unique, mais não me atende a contento... vejam abaixo a estrutura que
> necessito montar.
>
> estante prateleira volume
> 1 1 1
> 1 1 2
> 2 1 1
> 2 1 2
> 2 2 1
> 2 2 2
> 2 3 1
> 2 3 2
>
> Sds,
> HPensador
>
>
>
>
> ______________________________________________
> 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