[firebase-br] Chave Primária Composta (Pros/Contra)

Eduardo Pelizzari de Andrade eduardoandrade em persoft.com.br
Ter Mar 4 12:11:12 -03 2008


O ideal é não usar chave ou mesmo índices compostos, mais cada caso é um 
caso.

Na sua estrutura partileira deve ser numerada a partir de 1 para cada 
estante e volume precisa ser numerado a partir do 1 para cada 
prateleira. Se for isso, não vejo vantagem em usar chave primária, 
porque você ainda teria que guardar a ordem do registro dentro do seu 
registro pai. Caso não seja necessário, ai é simples, você deixa volume 
como chave primária do volume e numera seqüencialmente o volume  a 
partir do 0 até infinito independente da prateleira que ele está. A 
prateleira será apenas uma chave estrangeira nesta tabela. Na relação da 
prateleira e estante a mesma coisa.

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
>
>
>
>   

-- 
Eduardo Pelizzari de Andrade
Persoft Softwares Aplicativos
Fone: 55 11 62218061





Mais detalhes sobre a lista de discussão lista