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

Normalizar relaciones

Estas en el tema de Normalizar relaciones en el foro de Bases de Datos General en Foros del Web. Que tal?, paso a contarles; tratare de explicarme. Tengo un caso de relación de muchos a muchos...pongo un ejemplo: Categorías>Items Países>Items Donde, tengo las tablas. ...
  #1 (permalink)  
Antiguo 20/07/2007, 12:08
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Normalizar relaciones

Que tal?, paso a contarles; tratare de explicarme.

Tengo un caso de relación de muchos a muchos...pongo un ejemplo:
Categorías>Items
Países>Items
Donde, tengo las tablas.
Código:
Items 

      <-items_categorias-> 
categorias

      <-items_paises-> 
paises
Ahí, para levantar items, y filtrarlos esta todo bien, ya que mediante la tabla de items_categorías, o items_paises puedo filtrar perfectamente teniendo un id de pais o categoría.

El tema es cuando quiero filtrar países de una determinada categoría. Se que suena confuso..., pero por ejemplo si quiero levantar solo los paises que tengan al menos un item en la categoría "lugares".

Lo que tengo que hacer es cruzar ambas tablas items_categorías y items_paises, ya que no tengo una relación directa de categoría a país, sino que tengo que pasar por items que es quien relaciona a ambas.

1- Hay alguna manera de normalizar esto para no hacer taaaantas vueltas ?
2- Como se llaman a estas relaciones "abstractas"?
3- Es mejor en caso de no existir solución usar join o sub selects?

Gracias

PD/Edit: Pensándola un toque el tener una única tabla así EJ:
item | categoria | pais
Podría solucionarlo, consultando todo ahí, pero el tema es que este es un ejemplo, y realmente tengo a items varias de estas relaciones múltiples, no se si sea una buena idea ésta.
__________________
Mi punto de partida es Que Bueno Lo Nuevo

Última edición por nicolaspar; 21/07/2007 a las 07:54
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:17.