Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/07/2015, 04:19
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Detectar datos de base separados por comas

En primer lugar, estas modelando mal esa relación. Lo que corresponde es agregar dos tablas, una para las web y otra que relacione las web con los productos.
Eso seria lo correcto desde el lado de Bases de Datos.

Lo esencial es que se comprenda que un mismo producto puede relacionarse con N webs, y a su vez cada web puede relacionarse con N producto. Ese tipo de relaciones de cardinalidad N:M, en las bases de datos relacionalesobligatoriamente deben definirse con tablas que vinculen ambas entidades. Eso implica que hay tres tablas en juego: Producto, Web y producto_web, que las vincula.

¿Puedes hacerlo sin eso. Bueno, poder, peudes, pero estarías creando campos multivaluados (cosa prohibida en BBDD), que terminan trayendo muchísimos problemas a la hora de optimizar consultas, y en caso de usarlos deberás utilizar funciones de cadena para evaluar el WHERE. Y no de las buenas.
Adicionalmente, ese tipo de casos no es indexable de forma eficiente, por lo que crear índices no funcionará si no pones las webs con sus comas en el mismo orden que aparecen... o sea el mismo inconveniente.
Esa forma de guardar datos separdos por comas no te servirá tampoco usando índices FULLTEXT, porque al ser webs, loos nombres contienen puntos y los puntos son separadores de listas en el contenido de los indices FULLTEXT, por lo que tampoco serán eficientes para tu problema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 15/07/2015 a las 07:34