Ir para conteúdo
Fórum Script Brasil
  • 0

Super Busca


Roberto Carvalho

Pergunta

Vou tentar explicar o que quero fazer, tenho uma aplicação em asp com bd mysql. Nessa aplicação tenho a seguinte tabela:

table_Palavras

Campos:

Id,data,idioma,palavra

E tenho uma outra tabela:

table_traducoes

Campos:

Id,Idpalavra,data,idioma,traducao

O que quero é o seguinte, quando uma pessoa cadastra uma palavra no site ela também cadastra sua possíveis traduções ou seja:

cadastro na tabela table_Palavras Idioma:Português, palavra:Cabelo em seguida vou para a tela de possíveis traduções e cadastro na tabela table_traducoes Idioma:Inglês,palavra:Hair e assim por diante posso cadastrar até 3 possíveis traduções.

se alguém entrar no site e cadastrar na tabela table_Palavras a palavra hair em ingles e nas possiveis traduções colocar a palavra em arabe,espanhol,frances e depois alguém cadastrar em francês e colocar como possíveis traduções a palavra em alemão,italiano,etc...

Eu quero que quando a pessoa digite a palavra no campo de busca seja identificado todas as suas possíveis traduções e o resultado venha todos os cadastros da tabela table_Palavras que estejam presentes na tabela table_traducoes linkados, ou seja se eu digitar a palavra cabelo ela não somente encontre as possiveis traduções da palavra cabelo mas sim também as possíveis traduções da palavra hair e qualquer outra lingua que esta palavra esteja cadastrada.

Não sei se fui bem claro nem mesmo sei se não teria que postar no forum de Mysql mas como a aplicação é em asp resolvi postar aqui.

Se alguêm poder me ajudar desde já agradeço.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Roberto, boa tarde.

A questão é: Como você relaciona uma tabela com a outra?

Por exemplo eu digito a palavra cabelo, o reseultado ta tabela de traduções deveria ser hair, certo? Ok... mas o que tem na tabela de traduções que tb tenha igual na tabela de palavras? o id?

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Até ai tudo bem se digitar cabelo ela encontra a palavra hair. Mas o quero é se alguém já cadastrou essa hair e cadastrou outras possíveis traduções ele também as encontre.

ou seja:

Português: cabelo

Possíveis traduções:

Inglês: hair

Espanhol: pelo

Alemão: Haar

Inglês: Hair

Possíveis traduções:

Italiano: capelli

Croata: kosa

vietnamita: tóc

Croata: Kosa

Possíveis traduções:

Dinamarquês: hår

Russo: волосы

Sérvio: коса

Ou seja: se a pessoa digitar a palavra cabelo o sistema iria encontrar:

cabelo, hair e Kosa

Link para o comentário
Compartilhar em outros sites

  • 0

Entendi... mas o mecanismo de busca você já tem?

porque é basicamente a mesma coisa, com alguma condicional junto...

Como está seu select de busca? Posta ele aí que lhe ajudo a montar a condicional...

você quer que essa condicional verificadora seja executada antes do momento de um novo insert, correto?

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0

Os dados ficariam assim:

table_Palavras

Id,data,idioma,palavra

38,13/10/2008 15:30:30,pt,cabelo

39,13/10/2008 15:30:30,en,hair

40,13/10/2008 15:30:30,cro,kosa

table_traducoes

Id,Idpalavra,data,idioma,traducao

1,38,13/10/2008 15:30:30,en,hair

2,38,13/10/2008 15:30:30,es,pelo

3,38,13/10/2008 15:30:30,al,haar

4,39,13/10/2008 15:30:30,it,capelli

5,39,13/10/2008 15:30:30,cro,kosa

6,39,13/10/2008 15:30:30,viet,tóc

6,40,13/10/2008 15:30:30,din,hår

então se a pessoa digita-sse cabelo na busca ela encontraria:

38,13/10/2008 15:30:30,pt,cabelo

39,13/10/2008 15:30:30,en,hair

40,13/10/2008 15:30:30,cro,kosa

que são as formas de escrever cabelo nos idiomas cadastrados na tabela table_Palavras. que contém nas possíveis traduções da tabela table_traducoes.

Link para o comentário
Compartilhar em outros sites

  • 0

declare @table_Palavras table (Id int,data datetime,idioma varchar(20),palavra varchar(20))
insert into @table_Palavras (Id,data,idioma,palavra) values (38,'2008/12/10 15:30:30','pt','cabelo')
insert into @table_Palavras (Id,data,idioma,palavra) values (39,'2008/12/10 15:30:30','en','hair')
insert into @table_Palavras (Id,data,idioma,palavra) values (40,'2008/12/10 15:30:30','cro','kosa')

declare @table_traducoes table (Id int,Idpalavra int,data datetime,idioma varchar(20),traducao varchar(20))
insert into @table_traducoes (Id,Idpalavra,data,idioma,traducao) values (1,38,'2008/12/10 15:30:30','en','hair')
insert into @table_traducoes (Id,Idpalavra,data,idioma,traducao) values (2,38,'2008/12/10 15:30:30','es','pelo')
insert into @table_traducoes (Id,Idpalavra,data,idioma,traducao) values (3,38,'2008/12/10 15:30:30','al','haar')
insert into @table_traducoes (Id,Idpalavra,data,idioma,traducao) values (4,39,'2008/12/10 15:30:30','it','capelli')
insert into @table_traducoes (Id,Idpalavra,data,idioma,traducao) values (5,39,'2008/12/10 15:30:30','cro','kosa')
insert into @table_traducoes (Id,Idpalavra,data,idioma,traducao) values (6,39,'2008/12/10 15:30:30','viet','tóc')
insert into @table_traducoes (Id,Idpalavra,data,idioma,traducao) values (6,40,'2008/12/10 15:30:30','din','hår')

select *
from @table_Palavras p, @table_traducoes t
where p.Id = t.Idpalavra
    and p.palavra like 'cabelo'

Temos a massa de teste agora é só lapidar.

Me diga pelo que entendi você quer um busca tipo recursiva?

E os niveis de busca são indefinidos?

Quem fez a mnodelagem destes dados? Foi você ou é algum legado?

Link para o comentário
Compartilhar em outros sites

  • 0

eu faria algo do tipo

tbl: idiomas (id - idioma - base [sim / não])

tbl: palavras_base (id - palavra)

tbl: palavras (id - id_base - palavra - idioma_id)

bom ai já entendeu a relação delas né...

na hora de inserir a palavra sempre adicione um espaço no final

ai por exemplo

tenho

tbl idiomas

1 - pt/br - true

2 - en - false

tbl palavras_base

1 - cabelo

2 - mulher

tbl palavras

1 - 1 - hair - 2

2 - 2 - woman - 2

ao se fazer o select buscando por um campo:

sql="select * from palavras_base where palavra='cabelo'"
se a palavra fosse cabelo exibiria resultados em idioma_base [pega do banco] cabelo resultados em idioma 2
sql="select * from palavras where idioma_id="&id_outro idioma&" and id_base="&id da palavra encontrada no primeiro select

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...