[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