Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2014, 01:05
zyxer
 
Fecha de Ingreso: abril-2014
Mensajes: 72
Antigüedad: 10 años, 7 meses
Puntos: 5
Buscador de música

Hola, no soy exactamente duro en MySQL y me convencí de eso con solamente ver unos cuantos post en este foro (confieso que no había leído en este sub foro nunca). Así que vine en busca del buen consejo de los que saben.

Estoy haciendo una web de música y me toca trabajar con el buscador, anteriormente tenía una función PHP que me creaba una sentencia con MATCH... AGAINST... y ponía LIKE a las palabras de menos de tres letras, para buscar en el nombre de los artistas y de las canciones. Todo eso lo resolvía en una sola mega función.

Ahora bien, he modificado la tabla para permitir Featurings (cuando dos cantantes que normalmente no cantan juntos hacen una canción juntos Ej.: Wisin y Yandel FT. Ricardo Montaner) y quería ver como hacía otra super-mega-ultra-consulta que me saque del apuro... pero andando por el foro me encontré con un comentario del cual cito la parte interesante para mí:
Cita:
Iniciado por gnzsoloyo Ver Mensaje
Lo que no se recomienda jamás es hacer un "buscatodo en todo", por más que parezca una buena idea. Hacer 5 queries consecutivas puede ser más eficiente qmue una "superconsulta" que lo busque todo.
Cómo me recomendarían resolver el asunto ahora que la función se haría más compleja al ponerlo a buscar en aun más tablas?

Básicamente, la parte relevante de la estructura de mi base de datos es:

Tabla: artistas
Campos: id, nombre

Tabla: cancion
Campos: id, nombre_cancion, id_del_artista

Tabla: featuring
Campos: id, id_de_la _cancion, id_del artista

------------------

En el ejemplo del Featuring de de Wisin y Yandel con Ricardo Montaner, los datos serían así:

artistas
id(1), nombre(Ricardo Montaner)
id(2), nombre(Wisin y Yandel)

cancion
id(1), nombre_cancion(Donde está el Amor), id_del_artista(1)

featuring
id(1), id_de_la _cancion(1), id_del artista(2)

-------------

Bueno, intenté explicarme lo mejor posible a pesar de no conocer la correcta de plasmar por escrito la estructura de mi base de datos. Espero no se hayan perdido y me puedan ayudar. Recuerden: La duda es ¿Cómo hago un motor de búsqueda lo más eficiente posible?

Última edición por zyxer; 20/04/2014 a las 01:12