[firebase-br] duvida para criar foreign key
Gustavo Moda
gustavo.moda em gmail.com
Sex Dez 5 17:10:25 -03 2008
Natália,
Prefira criar as FKS fora do comando CREATE TABLE, não terás dores de
cabeça com auto-relacionamentos.
Monte o script sempre da seguinte forma
1) Cria os dominios
2) Cria as tabelas;
3) Cria as pks;
4) Cria as fks
5) Cria os generators;
6) Cria as trigger;
A mais uma coisinha, sempre dê nomes as CONSTRAINT FK e PK, é uma mão
na roda quando o FB retorna o erro. Você lendo o nome da CONSTRAINT já
mata qual tabela. Ganhando tempo.
Mais uma "cornetada"! use domain, melhor, deixa o banco limpinho, e
você pode dar nomes aos tipos.
Ex.
CREATE DOMAIN DOM_UF CHAR(2);
Se o seu tipo uf mudar ( é exemplo heimmm, seu que a UF nunca irá
mudar), basta mudar o DOMAIN e voalá, sem dores de cabeça, todos os
campos relacionado ao domínio serão modificados. Isso é muito util
quando é usado CHECK de tipos no domain..
etc. etc.
"Cornetando" mais ainda, use sulfixos ou prefixos para nomear os objetos...
TR = Para trigger
FK = Para Fks;.
PK = para pks;
IX = para indices
UQ = Unique Key...
Agora, vamos ao seu erro.
CREATE DOMAIN DOM_INTEGER INTEGER;
CREATE TABLE Texto_Assunto (
idTextoFK DOM_INTEGER NOT NULL,
idAssuntoFK DOM_INTEGER NOT NULL,
CONSTRAINT "PK_Texto_Assunto" PRIMARY KEY (idTextoFK)
);
ALTER TABLE Texto_Assunto ADD CONSTRAINT "FK_Texto_Assunto-Assunto"
FOREIGN KEY (idAssuntoFK ) REFERENCES Texto_Assunto (idTextoFK)
USING INDEX "IX_Texto_Assunto-Assunto";
Inté! ;-)
Dá uma lida no Starting guide do fb.. Muito bom!
Mais detalhes sobre a lista de discussão lista