Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ADMIM EXCLUA O OUTRO TOPICO Q CRIUO DUPLICADO QUANDO ACALQUEI EM POSTAR PARECIA QUE NÃO TINHA IDO E CLIQUEI EM POSTAR DENOVO E CRIOU 2..
assim pessoal to fazendo um projeto grande, mas presiso de umas dicas de como fazer da melhor forma a organização no banco de dados...
primeiro, a busca no db será com varias palavras, achei isso: http://dev.mysql.com/doc/refman/4.1/pt/fulltext-search.html
segundo, digamos que na categoria noticias, terei milhares de linhas contendo titulo, data, quem postou,tags,categoria...
presiso fazer uma busca rapida..
então achei isso: http://vivendonaweb.blogspot.com.br/2010/05/banco-de-dados-e-seus-indices.html
agora... presiso de dicas...
a estrutura do banco de dados fica melhor de que forma?
pensei em fazer tipo assim:
database = jogos
tabelas = 1 = need,2 = gta, 3= gtaiv, 4 =call...
dae dentro das tabelas teria milhares de linhas contendo titulo, data, quem postou,tags etc...
digamos q quero ver jogos...
então chamarei em link o nome das tabelas...
escolhi gta;
então chamaria tudo que tem em gta em forma de posts tipo blog...
dae as outras categorias eu criaria igual... exemplo:
database = photoshop
tabelas = 1 = inspiração,2 = brushes, 3= styles, ...
será q fica mais organizado e sem muito pesso na hora de pesquisar? pq dae ja vai dirreto no conteudo oq eu escolher...
não si como q é aki no imasters.. tem bastante conteudo, mas a pesquisa é muuuito lentaa...
seria fazer algo mais rapido...
alguem me explica melhor como q eu faria a fulltext-search na hora de chamar os dados....? vlww
ja quanto a organização do banco, tem forma melhor?? vlwww
::UPDATE::
Na versão 4.0.1, MySQL também pode realizar buscas full-text booleanas usando o modificador IN BOOLEAN MODE.
mysql> SELECT * FROM articles WHERE MATCH (title,body)
-> AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);
+----+------------------------------+-------------------------------------+
| id | title | body |
+----+------------------------------+-------------------------------------+
| 1 | MySQL Tutorial | DBMS stands for DataBase ... |
| 2 | How To Use MySQL Efficiently | After you went through a ... |
| 3 | Optimizing MySQL | In this tutorial we will show ... |
| 4 | 1001 MySQL Tricks | 1. Never run mysqld as root. 2. ... |
| 6 | MySQL Security | When configured properly, MySQL ... |
+----+------------------------------+-------------------------------------+
então eu poderia mudar para:
mysql> SELECT * FROM articles WHERE MATCH (tags)
-> AGAINST ('palavras aki teste' IN BOOLEAN MODE);
sim, para fazer isso tenho que antes ter criado mais ou menos assim:
mysql> CREATE TABLE articles (
-> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
-> tags VARCHAR(200),
-> FULLTEXT (tags)
-> );
usando esse metodo; posso implodir um array com ' ' e jogar ali na pesquisa? ou faço como?
outra dica seria na hora do SELECT * FROM....
***Nunca utilize * em consultas: Esta dica é extremamente valiosa, vou explicar por que. Os bancos de dados atuais utilizam um 'banco guias' para gerenciamento dos schemas(bancos de dados), no caso do MySQL todas as informações de databases, tabelas e campos são cadastrados em information_schema, quando você utilizar * o banco internamente precisa verificar no information quais os campos da tabela no qual deseja resultados, caso o SELECT tenha JOIN esse processo é feito para todas as tabelas, isso já diminui a performance, principalmente se o banco for compartilhar, onde deverá haver muitas informações no information_schema. Por isso fica a dica, é melhor declarar todos os campos que deseja retorna, NUNCA UTILIZE *.***
seria mais ou menos assim? vlww
Carregando comentários...