Estoy creando una sencilla aplicación web de búsqueda de productos donde el usuario puede filtrar los productos de las compras que ha marcados sobre la base del precio, la entrega gratuita, nombre, tienda etc.cómo crear un esquema de base para el almacenamiento de los filtros de búsqueda de productos
Estoy buscando implementar la funcionalidad de filtros de búsqueda personalizados donde el usuario puede crear un filtro de búsqueda y luego guardarlo para usarlo más adelante. Los filtros de búsqueda son algo como esto:
- precio es $ 1000
- precio está entre $ 1000 a $ 2000
- entrega gratuita disponible/no disponible
- tienda es Amazon/Walmart/...
- el nombre contiene "navidad"
¿Alguien me puede dar una idea del esquema de la base de datos para almacenar dichos filtros de búsqueda en la base de datos. Debo guardar las cláusulas de MySQL en la base de datos como "donde el precio < 1000", "DONDE free_delivery = 1" ... o puede ser crear campos como este ..
- campo (precio, nombre, free_delivery)
- valor (1000)
- expr (menor que, mayor que)
- entre (1000)
- y (2000)
- contiene
Solo una nota sobre esta respuesta para que esto funcione se le requerirá que especifique sus tablas como INNODB en lugar del valor predeterminado de MyISAM. Como se puede ver en http://dev.mysql.com/doc/refman/5.6/en/ansi-diff-foreign-keys.html, indican "En una etapa posterior, las restricciones de clave externa se implementarán para las tablas MyISAM como bien." este mismo texto ha estado presente para todas las versiones durante los últimos 8 años más o menos. Además, incluso si utiliza INNODB, no se garantiza que la clave externa se adhiera también. Se sabe que MySQL hace caso omiso de claves externas a veces. – Peter
Gracias Peter, no estaba al tanto de esa restricción. – andebauchery