Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

lookuptable

Estas en el tema de lookuptable en el foro de Mysql en Foros del Web. hola compañeros.. mi problema es que tengo un administrador donde 1 objeto (algo como casa, carro, etc) puede tener varias caracteristicas, al momento de insertar ...
  #1 (permalink)  
Antiguo 06/12/2007, 13:10
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años, 1 mes
Puntos: 11
lookuptable

hola compañeros..

mi problema es que tengo un administrador donde 1 objeto (algo como casa, carro, etc) puede tener varias caracteristicas, al momento de insertar este objeto aparece un multiselect (o checkboxes) donde seleccionamos las características para dicho objeto.. you guardo esta info en una tabla (que llamare lookuptable) como registros independientes refernciados por el id del objeto algo asi.

id_objeto => id_caracteristica1
id_objeto => id_caracteristica2
id_objecto => id_caracteristica3

ahora tengo un buscador donde al buscar por objeto despliego varios checkboxes con las caracteristicas, el usuario selecciona las características que quiera. para que el resultado sea un objeto que cumple con todas esas características.

necesito hacer la busqueda en lookuptable del id_objeto que cumpla con todas las caracteristicas..

cual es la forma mas eficiente de ejectuar este query??

un saludo.

ebe
__________________
http://dev.wsnetcorp.com
  #2 (permalink)  
Antiguo 06/12/2007, 20:40
Avatar de 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, 4 meses
Puntos: 2658
Re: lookuptable

A ver si lo entendí:
1. Una instancia de un objeto X1 y que se almacena en una tabla Tabla1, cuenta con un ID único e irrepetible.
2. En otra tabla Tabla2 se almacenan registros independientes para la descripción de un conjunto Y2 de atributos del objeto X1.
3. La cantidad de atributos posibles es limitada y puede contar desde 0 a X atributos en la Tabla2, siendo X un numero finito.
4. Lo que quieres saber es qué objetos X1 tienen la totalidad de los atributos posibles.

Si esa es la duda, lo que necesitas es realizar un conteo con selección agrupada por distintos.
Algo como esto:

SELECT T1.XNOMBRE
FROM
(
SELECT DISTINCT X1NOMBRE, COUNT(*) as ATRIBUTOS
FROM TABLA1 INNER JOIN TABLA2 USING (ID)
) AS T1
WHERE ARTIBUTOS = VALOR
GROUP BY X1NOMBRE;

Una consulta así te devuelve un campo indicando el atributo descriptivo del objeto (ID, Nombre, Descripción, etc), solamente de aquellos objetos que tengan una cantidad prefijada de atributos .
  #3 (permalink)  
Antiguo 07/12/2007, 12:49
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años, 1 mes
Puntos: 11
Re: lookuptable

A ver si lo entendí:
Cita:
1. Una instancia de un objeto X1 y que se almacena en una tabla Tabla1, cuenta con un ID único e irrepetible.
exacto.. este objeto tiene su primary key (id) que uso en la tabal lookuptable.


Cita:
2. En otra tabla Tabla2 se almacenan registros independientes para la descripción de un conjunto Y2 de atributos del objeto X1.
en esta tabla dos se almacena el id del objeto que puede repetirse muchas veces.. la cantidad de veces como caracteristicas tenga. ponle el objeto1 es rojo seria un registro, el objeto1 es ovalado, seria otro registro y asi indefinida veces.


Cita:
3. La cantidad de atributos posibles es limitada y puede contar desde 0 a X atributos en la Tabla2, siendo X un numero finito.
si ,, son caracteristicas finitas para el objeto.



Cita:
4. Lo que quieres saber es qué objetos X1 tienen la totalidad de los atributos posibles.
primero, al momento de insertar el objeto tengo un campo titulo, descripcion y un grupo de checkboxes que representan un listado de caracteristicas (que guardo en otra tabla) donde el usuario puede chequear las caracteristicas que se adaptan a este objeto, puede ser una o pueden ser todas. hasta ahi, al momento de hacer la inserción es cuando guardo en esta tabla llamada lookuptable tantos registros como caracteristicas se seleccionaron (asignandole el id del objeto a cada registro de caracteristica seleccionado/insertado).

después el buscador, que viene siendo lo mismo, un formulario donde pones el objeto que buscas y te presento de nuevo un grupo de checkboxes, y tu, seleccionaras los checkboxes que quieras y al buscar en lookuptable debo ver cual es el objeto que tiene y cumple con todas las caracteristicas seleccionadas.

ahora tu query lo veo avanzado pero como se adaptaria a este escenario??

ya que no le hayo lado al tuyo.

gracias por tu ayuda y espero puedas aclararme con tus conocientos de SQL.

ebe
__________________
http://dev.wsnetcorp.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:08.