Ver Mensaje Individual
  #10 (permalink)  
Antiguo 16/09/2004, 01:40
yomesmo
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 6 meses
Puntos: 1
Te cuento con más detalle como funciona la base de datos:

En una tabla tengo los contenidos.
Estos tienen un ID autonumérico para evitar errores.

A cada tipo de contenido le puedo añadir características específicas solo para ese tipo de contenidos . Esto lo hago insertando la descripción de estas características en una tabla y luego los valores de cada característica en otra tabla diferente, relacionada con la segunda.

De esta forma consigo asignar una cantidad infinita de características, cada una de ellas relacionadas con un tipo de contenido, en tan solo 2 tablas, en una la descripción de las características, señalando a quien estan asignadas y en otra tabla ingreso los valores.

Esta estructura me es sumamente útil por razones largas de explicar. El problema es al sacar una estadística en la que, como comentaba, necesito saber todos los contenidos que reunen los mismos valores de ciertas características.

Te explico con un ejemplo:

TABLA I (Contenidos)
ID contenido tipo_contenido
1 pepe 2
2 manolo 2
3 juan 2
4 loro 3

TABLA II (Caracterisiticas)
ID_caracteristica nombre ID_tipo_contenido
1 color_pelo 2
2 color_ojos 2

TABLA III (Valores caracterisiticas)
ID_valor nombre_valor ID_caracterisitica ID_Contenido
1 castaño 1 1
2 castaño 1 2
3 azules 2 1
4 azules 2 2
5 verdes 2 3

En este supuesto lo que necesito es saber quienes tienen los ojos azules y el pelo castaño.

El funcionamiento de la consulta es el siguiente:

1.- Extraigo un contenido
2.- Extraigo las características y los valores relacionados a cada una de ellas de las 2 tablas correspondientes.

Para almacenar los valores de la tabla de VALORES lo hago mediante un array, en el que los guardo.

Después y como ultimo paso, a cada valor almacenado en el array le declaro una variable para diferenciarlo.
Entonces es cuando tengo que hacer la consulta estadística, pero claro, el problema es que los valores están en la misma columna y si le digo :

WHERE TABLAIII.NOMBRE_VALOR ='castaño'

luego no le puedo volver a decir que ese mismo campo (NOMBRE_VALOR) tiene que ser tambien 'azules', porque es lo que necesito, extraer los que son castaños y azules.

No sé si me he explicado, disculpa mi poca facilidad de palabra e ignorancia.

La verdad es que esto me tiene muy agobiado, porque toda la estructura de la base de datos me ha funcionado muy bien, y tengo metidos muchos datos.

pero no doy con ello
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...