[firebase-br] PARA DIMAS
francisco gamarra
francisco.gamarra em gmail.com
Ter Jul 18 17:01:09 -03 2006
Caro Dimas, qdo estava montando o SQL q vc pediu,
percebi q os nomes dos campos / tabelas estão mt complic.
Aconselho a vc buscar uma maneira + amigavel de escrever o seu codigo.
procure fzr as tabelas o + padrao possivel, assim vc tera um leitura +
inteligente
do seu código.
Aí vai um conselho bacana e q me ajudou muito nas minhas aplicações:
toda tabela deve ter um campo "id", absolutamente toda e o nome desse
campo deve ser realmente "id" e ele deve ser int e primary key da tabela.
os outros campos q não podem repetir devem ser denominados como unique.
outro conselho bacana é toda tabela dever ter um campo "nome",
não interessa qual seja a tebela, com excessão das tabelas de cruzamento,
coloque um campo nome nela. este
campo deve ser seu principal campo de pesquisa.
o nome da table não pode ser no plural. uma tabela de produtos
deve se chamar "produto" e ponto.
como eu criaria uma table:
create generator id int not null;
create generator ref int not null default 0;
create table produto (
id int not null primary key,
nome varchar(50) not null unique );
//como uma table faria referencia a ela
create table venda (
id id primary key,
produto ref references(produto) on update cascade on delete cascade
);
//como seria o cruzamento
select *
from produto, venda
where produto.id = venda.produto;
//seu sql anterior
select id
from produto
where
(id in (select produto from rtipo54)) or
(id in (select produto from rtipo60i)) or (id in (select produto from
rtipo74));
Mais detalhes sobre a lista de discussão lista