--- Em sáb, 12/7/08, Juari Muller <[EMAIL PROTECTED]> escreveu: > De: Juari Muller <[EMAIL PROTECTED]> > Assunto: Re: [usuarios OOo] BASE - RELACIONAMENTO DE TABELAS > Para: [email protected] > Data: Sábado, 12 de Julho de 2008, 13:14 > Concordo com o Osvaldo, e adiciono um conselho: use o MySQL.
Ou, melhor ainda, use o PostgreSQL. http://www.postgresql.org/ ou http://www.postgresql.org.br e http://dba.openoffice.org/servlets/NewsItemView?newsItemID=330 > o HSQLDB > do OpenOffice é muito limitado > e tem suporte muito limitado a INNER JOINS, além de não > suportar SUBQUERIES. > Bom, quanto a VIEWS, este foi um recurso que recentemente > descobri no > MySQL que melhorou exponencialmente o tempo das minhas > consultas > n:n, pois antes levava um, dois minutos (ou simplesmente > travava e > tinha que reiniciar o micro) com SUBQUERIES, utilizando > VIEWS nos > INNER JOIN a consulta retorna o resultado em menos de 0.01 > segundo, > com mais de duzentos campos e uns vinte, trinta campos > relacionados > n:n (tenho umas três tabelas que possuem relação n:n com > a tabela > principal e outras tantas com relação 1:n). > Então, a não ser que o HSQLDB suporte VIEWS, recomendo > usar o MySQL > com driver ODBC. > Pode ser que o HSQL suporte VIEW, não sei (pois as > descobri depois de > ter mudado para o MySQL), mas se suportar, deve ser lenta > de qualquer > forma. > > bom, pra não ficar só no papo teórico deixo uns comandos > 1. cria as tabela > CREATE TABLE EMPRESA( empresa_id int auto_increment, > EMPRESA_NOME CHAR(255), > INDEX(empresa_NOME),PRIMARY KEY(empresa_id)); > > CREATE TABLE FATURA(FATURA_ID int auto_increment,VALOR > DECIMAL(15,2),DATA date , empresa_id int, > PRIMARY KEY(FATURA_ID)); > > CREATE TABLE EMP_FAT(fatura_id int, empresa_id INT, > FOREIGN KEY (FATURA_ID) references FATURA(FATURA_ID), > FOREIGN KEY (EMPRESA_ID) references EMPRESA(EMPRESA_ID)); > > daí cria dois formulários, um pra inserir empresas, outro > pra inserir > faturas, e um terceiro (que deve ser aprimorado) que coloca > os id de > empresas e faturas na tabela EMP_FAT > > e usa esta consulta pra exibir o relatório: > SELECT EMPRESA_NOME, FATURA_ID, VALOR, > DATA FROM EMP_FAT > INNER JOIN ( > EMPRESA > ) > USING ( EMPRESA_ID ) > INNER JOIN ( > FATURA > ) > USING ( FATURA_ID ) > dá pra criar uma view desta select apenas colocando > "create view > faturas as" antes do "SELECT" > aí que tá, será que o HSQL suporta este create view? > este comando é do MySQL. > > e de lambuja uns dados fictícios pra quem quiser brincar > -- > -- Extraindo dados da tabela `EMPRESA` > -- > > INSERT INTO `EMPRESA` (`empresa_id`, `EMPRESA_NOME`) VALUES > (1, 'SUPER EMPRESA FATUREIRA SA'), > (2, 'SIMPLATEC PLASTICOS'); > > -- > -- Extraindo dados da tabela `EMP_FAT` > -- > > INSERT INTO `EMP_FAT` (`fatura_id`, `empresa_id`) VALUES > (1, 1), > (1, 2), > (2, 1), > (3, 2); > > -- > -- Extraindo dados da tabela `FATURA` > -- > > INSERT INTO `FATURA` (`fatura_id`, `VALOR`, `DATA`) VALUES > (1, 100.00, '2008-07-10'), > (2, 243.00, '2008-07-17'), > (3, 123.00, '2008-07-25'); > > Coloquei a estrutura+dados completas (nomes de tabelas, > dados, em > minúsculas pra facilitar) em > http://jm.freeshell.org/dl/exemplo_mysql_1.txt > Osvaldo Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
