[firebase-br] ID tipo CHAR - Performance
Ricardo Ferreira Sobrinho
ricardoif em gmail.com
Sex Fev 27 16:00:39 -03 2009
2009/2/27 Kleber Caneva <kdcc em terra.com.br>
> Se fosse você, pensava na hipótese de ter 2 campos e usar 3 sequences.
>
> 1) Campo ID (integer) que seria a chave primeira e usaria a Sequence1.
> Seria
> utilizado para fazer as pesquisas.
>
> 2) Campo CODIGO, seria o descrito por você. 'X'+Sequence2 ou 'Y'+Sequence3
>
> E só uma sugestão, pra saber se é possivel teria que conhecer o problmea
> com
> oum todo.
>
> []´s
>
> Kléber Caneva
>
Boa tarde!
É justamente o que eu havia pensado.
Para explicar melhor, segue um resumo de um financeiro:
A tabela CONTA seria o cadastro único de Fornecedores, Clientes, etc.:
CREATE TABLE CONTA (
ID INTEGER NOT NULL,
NOME VARCHAR(50),
IFEDERAL VARCHAR(14),
IESTADUAL VARCHAR(18),
TIPO CHAR(1)
);
ALTER TABLE CONTA ADD CONSTRAINT PK_CONTA PRIMARY KEY (ID);
CREATE INDEX CONTA_IDX_NOME ON CONTA (NOME);
A tabela CONTAS_PR seria única para contas a Pagar e a Receber::
CREATE TABLE CONTA_PR (
ID INTEGER NOT NULL,
CONTROLE CHAR(10),
EMISSAO DATE,
CONTA INTEGER NOT NULL,
DOCUMENTO VARCHAR(20),
VALOR NUMERIC(15,2),
VENCIMENTO DATE,
QUITACAO DATE
);
ALTER TABLE CONTA_PR ADD CONSTRAINT PK_CONTA_PR PRIMARY KEY (ID);
ALTER TABLE CONTA_PR ADD CONSTRAINT FK_CONTA_PR_CONTA FOREIGN KEY (CONTA)
REFERENCES CONTA (ID);
E a tabela CAIXA para o lançamento dos recebimentos:
CREATE TABLE CAIXA (
ID INTEGER NOT NULL,
EMISSAO DATE,
VALOR NUMERIC(15,2),
D_C CHAR(1),
CONTA INTEGER,
CONTROLE CHAR(10),
DOCUMENTO VARCHAR(10),
HISTORICO VARCHAR(30)
);
ALTER TABLE CAIXA ADD CONSTRAINT PK_CAIXA PRIMARY KEY (ID);
ALTER TABLE CAIXA ADD CONSTRAINT FK_CAIXA_CONTA FOREIGN KEY (CONTA)
REFERENCES CONTA (ID);
--
Cordialmente,
Ricardo Ferreira Sobrinho
Mais detalhes sobre a lista de discussão lista