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

Ayuda consulta o cambio Bd

Estas en el tema de Ayuda consulta o cambio Bd en el foro de Mysql en Foros del Web. Por favor necesito, sacar esta consulta o saber si planteado mal la base de datos (en este caso tendria que remplatear todo lo que tenia ...
  #1 (permalink)  
Antiguo 22/10/2008, 12:11
Avatar de Silko  
Fecha de Ingreso: septiembre-2008
Mensajes: 62
Antigüedad: 16 años, 2 meses
Puntos: 0
Ayuda consulta o cambio Bd

Por favor necesito, sacar esta consulta o saber si planteado mal la base de datos (en este caso tendria que remplatear todo lo que tenia hecho).

Explico como van las tablas:


Tabla 1

id_cosa
nombre cosa
direccion cosa
Web1 (estos campos a 0 y a 1 para saber en que web se muestra cada 1, si en una web si en dos...o 4 web)
Web2
Web3
Web4
etc...


Conexion


cod_id_cosa (hace referencia a Id cosa)
cod_id_clasificacion 1 (hace referencia a id_clasificacion 1)
cod_id_clasificacion 2 (hace referencia a id_clasificacion 2)
cod_id_clasificacion 3(hace referencia a id_clasificacion 3)



Clasificacion1

id_clasificacion1
nombre_clasificacion



Clasificacion2

id_clasificacion2
nombre_clasificacion
cod_clasificacion1 (hace referencia a id_clasificacion 1)


Clasificacion3

id_clasificacion3
nombre_clasificacion (hace referencia a id_clasificacion 2)

Son varias páginas web que comparten datos, en la que Tabla 1 son datos comunes a todas(solo existe 1 tabla), pero la clasificación de 3 niveles es unica en cada web. Pudiendo cada "Cosa" estar clasificada solo en una rama de cada clasificacion por web (es decir en la misma web). Por lo que de clasificacion hice 3 tablas por cada web, estructuradas de la misma forma (solo cambiando el nombre de la tabla).

Se tiene que permitir qu estos niveles se pueden ramificar a partir de niveles intermedios, ej:

Costa
Blanca
con arena

Costa
Blanca
sin arena
Las clasificaciones pueden acabar en cualquier nivel (puede ser una clasificacion de 1 nivel, 2 niveles o 3 niveles).
Las "id_cosas" pueden estar casificadas o pueden que no lo esten. En caso de que lo esten tienen que estar registradas al final de un rama de clasificacion. No puede quedarse una cosa registrada en un rama intermedia.
Ejemplo: Si una clasificacion es Costa Blanca Arena , la cosa tiene que esta registrada al final de la rama y no quedar en Blanca sin nivel 3 (Arena.)


Ejemplo de datos en tablas



Tabla1


1 nom1 c\asd......................1 0 0 0
2 nom2 c\xcvxcv..................0 1 0 1
3 nom3 c\zxcm....................1 1 1 1
4 nom4 c\toxcvnt................0 0 0 0
5 nom5 c\tozntxcveria........1 1 1 0
6 nom6 c\toxcntebria.........0 0 0 1
7 nom7 c\toxcntebria.........0 0 1 0



Conexion


1 n1-1 n1-2 n1-3 (la cosa 1 perteneceria a un clasificacion de 3 niveles)
2 n1-1 n1-4 0 (el 2 a una clasificacion 2 niveles)
3 s1-2 s1-3 0 (el 3 pertenece a una clasificacion de dos niveles, cambia el id xq pertenece a otra web)
4 k1-3 0 0 (de 1 nivel)
5 n1-1 n1-2 n1-3 ( 5 pertenece a la clasificacion de 3 niveles = que 1)
6 k1-1 0 0 (1 nivel de otra web)


3 tablas clasificacion por cada web



Clasificacion1 Web1

n1-1 Costa



Clasificacion2 Web1

n1-2 Blanca n1-1
n1-4 Negra n1-1



Clasificacion3Web1

n1-3 con Arena n1-2


De esta manera existiria 2 clasificaciones (Costa blanca con arena , Costa negra)

Otra Web



Clasificacion1 Web2

s1-1 Montaña



Clasificacion2 Web2

s1-3 con nieve



Clasificacion3 Web2

0

..... y asi tres tablas de clasificacion por cada web


Esto lo escribo por si he planteado mal las tablas (Casi seguro que si soy un novatillo) y me dieseis sugerencias porque me vuelvo loco.

A todo esto la consulta que no soy capaz de hacer es la siguiente:

Imaginemos que estamos en "Web1" solo hara referencia a tabla1, conexión y la 3 tablas de clasificacion que corresponden a esa web (en este caso Clasificacion1_web1,Clasificacion2_web1,Clasificac ion3_web1 ).

Sacar los datos de tabla uno que pertenecen a esta web, mas la clasificacion a la que pertenece cada uno (si no esta clasificado esta no apareceria, pero si los demas datos de tabla1).

Ejemplo de resultaado

Solo muestro resultados de Web1 cuyoss id eran (nx-x , x son los numeros q forman el id)

Nombre clasificacion
nom1 costa blanca con arena
nom7 (no sale nada xq no esta clasificado)
nom2 costa negra


Espero haberme explicado lo mejor posible, y agradeceria mucho la ayuda (si la consulta no se puede hacer por mal planteamiento de la base dedatos me gustaria que me dijeseis como lo hariais la relaciones (aunque me cambie muxas cosas del proyecto)).

Gracias a todos
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 13:46.