[firebase-br] Chave primária

Toninho Eleotério toninhoeleoterio em gmail.com
Sex Fev 22 16:41:11 -03 2013


Boa tarde Helio
Tudo bem?

No meu ponto de vista, você não terá problema nenhum com relação a isso, o
que pode ocorrer é alguém apontar uma solução melhor que a sua e que a
minha , o que eu ainda não vi em se tratando de chaves primárias compostas,
mas se tiver vai ser muito bem vinda. rsrsrs. Na teoria é realmente o que
tem que acontecer quando um mapeamento correto é levantado entre as
tabelas, implementando integridades referencial, obrigatoriedade de valores
quando necessário e tudo mais.

Ouvi um comentário de um programador ASP que os mapeamentos são feitos via
um único ID do objeto, mas ASP é outra história né?


Mas trabalho em um sistema específico, bombando desde 2002 com chaves desse
tipo, dá só uma olhada abaixo, tem tabelas maiores ainda.


*Campos chave*
CODIGOALUNO,
CODIGOCATEGORIA,
SERIE,
CODIGOESCOLA,
TURNO,
TURMA,
CODIGOANO);

A tabela de notas é pior ainda, tem mais campos veja abaixo:

CREATE TABLE ENTURMADO (
    CODIGOANO          INTEGER NOT NULL,
    CODIGOALUNO        INTEGER NOT NULL,
    TURMA              VARCHAR(2) CHARACTER SET NONE NOT NULL,
    SERIE              VARCHAR(25) CHARACTER SET NONE NOT NULL,
    CODIGOESCOLA       INTEGER NOT NULL,
    TURNO              CHAR(1) CHARACTER SET NONE NOT NULL,
    CODIGOCATEGORIA    INTEGER NOT NULL,
    DATMATR            DATE,
    DATCANC            DATE,
    NUMERO             SMALLINT,
    MAT_REMAT          CHAR(1) CHARACTER SET NONE,
    STATUS             CHAR(1) CHARACTER SET NONE,
    SITUACAO           VARCHAR(15) CHARACTER SET NONE,
    CODIGOANT          INTEGER,
    TIPOBOLETA         INTEGER,
    EX_ALUNO           CHAR(1) CHARACTER SET NONE,
    CODIGOCONTRATANTE  INTEGER,
    PARCELAESPECIAL    DECIMAL(10,2)
);




/******************************************************************************/
/****                             Primary Keys
****/
/******************************************************************************/

ALTER TABLE ENTURMADO ADD CONSTRAINT PK_ENTURMADO PRIMARY KEY (CODIGOALUNO,
CODIGOCATEGORIA, SERIE, CODIGOESCOLA, TURNO, TURMA, CODIGOANO);



ALTER TABLE NOTAS ADD PRIMARY KEY (
CODIGODISCIPLINA,
CODIGODIVISAO,
CODIGOPROFESSOR,
CODIGOCATEGORIA,
SERIE,
CODIGOESCOLA,
TURNO,
CODIGOANO,
CODIGOBIMESTRE,
CODIGOALUNO);


Atenciosamente,
Toninho Eleotério

Telefones: (32) 3222-5695
                (32) 8856-3706

*"Certamente que a bondade e a misericórdia me seguirão todos os dias da
minha vida, e habitarei na casa do Senhor por longos dias."
Salmo 23.6*



Em 22 de fevereiro de 2013 16:07, Hélio Oliveira <hpensador em gmail.com>escreveu:

> Boa tarde Colegas!
>
> Comecei a trabalhar na modelagem da base de dados de uma nova aplicação
> que irei desenvolver, porém estou me deparando com a situação de ter chave
> primárias compostas com 5 (cinco) campos ou mais. Vou demonstrar esta
> situação em uma tabela abaixo e pedir o auxilio/ajuda dos amigos para
> verificar se esta é a melhor solução.
>
> codigo_empresa integer;
> mes integer;
> ano integer;
> sequencia integer;
> matricula integer;
>
> Acima estão os campos de uma chave primária de uma das tabelas do sistema
> que contém exatamente 5 (cinco) campos.
>
> Trata-se de um sistema de folha de pagamento multi-empresa.
>
> Posso vir ter problemas  com esta modelagem?
>
> [  ]'s,
>
> Hélio Oliveira
> Analista de Sistemas
>
>
> ______________________________**________________
> 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<http://www.firebase.com.br/fb/artigo.php?id=1107>
> Para consultar mensagens antigas: http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>



Mais detalhes sobre a lista de discussão lista