Tengo la tabla frutas
Tengo una tabla categorías
Tengo una tabla contenido de categorías
En categorías tengo hartas cosas como por ejemplo paises por donde ha pasado.
El problema es el siguiente:
La fruta puede llevar mas de una etiqueta, digamos 3 y que además pasó por 2 paises, asi que ya tengo 2 categorías con 5 items, el problema es como relaciono esto con la tabla de frutas para poder hacer una busqueda a futuro?
Pensé en agregar una columna por cáda categoría en la tabla de la fruta pero no me sirve porque un administrador puede sacar o agregar categorías
El problema es que puede tener varias categorías o ninguna.
Tampoco me sirve serializar las categorías o separarlas por comas porque después necesito hacer un filtro de busqueda por checkboxes y no puedo estar buscando con like '%,$id,%' porque es muy impreciso e incomodo.
Que pasa si deseo listar todas las frutas que tengan la estampa 1,2 y 3 y que hayan pasado por mexico y chile?
Que puedo hacer en éste caso?
Estructura:
Código
CREATE TABLE IF NOT EXISTS `categorias` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `nombre` CHAR(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; -- -- Volcar la base de datos para la tabla `categorias` -- INSERT INTO `categorias` (`id`, `nombre`) VALUES (1, 'paises_recorridos'), (2, 'estampas'); -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `contenido_categorias` -- CREATE TABLE IF NOT EXISTS `contenido_categorias` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `id_categoria` INT(11) NOT NULL, `nombre` CHAR(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; -- -- Volcar la base de datos para la tabla `contenido_categorias` -- INSERT INTO `contenido_categorias` (`id`, `id_categoria`, `nombre`) VALUES (1, 1, 'Chile'), (2, 1, 'México'), (3, 1, 'Estados unidos'), (4, 1, 'Argentina'), (5, 2, 'Estampa de supermegacalidad'), (6, 2, 'Estampa de madurez alta'), (7, 2, 'Estampa sin fertilizante'), (8, 2, 'Estampa de brillo'); -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `frutas` -- CREATE TABLE IF NOT EXISTS `frutas` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `nombre` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; -- -- Volcar la base de datos para la tabla `frutas` -- INSERT INTO `frutas` (`id`, `nombre`) VALUES (1, 'Pera'), (2, 'Manzana'), (3, 'Kiwi'), (4, 'Plátano');
Claro que no lo quiero para frutas ni paises xD es solo un ejemplo de lo que quiero hacer con otros datos y tags con categorías de tags.
Creo haber visto esto en wordpress, mientras tanto le daré un vistazo al código fuente.
Edito:------------------------------------
Ya vi wordpress y lo que hace es crear dos tablas nuevas con relación de datos:
Código:
Estructura term_relationships
Estructura term_taxonomy
Habrá algo más cómodo y rápido que hacer una tabla como pasarela de relaciones?