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

Base de datos con alimentos "iguales" y "parecidos"

Estas en el tema de Base de datos con alimentos "iguales" y "parecidos" en el foro de Bases de Datos General en Foros del Web. Hola a todos, Soy bastante malo en esto de las bases de datos, por eso vengo a pedir ayuda y consejo. Estoy creando un aplicación ...
  #1 (permalink)  
Antiguo 17/01/2011, 06:28
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 15 años, 1 mes
Puntos: 0
Base de datos con alimentos "iguales" y "parecidos"

Hola a todos,

Soy bastante malo en esto de las bases de datos, por eso vengo a pedir ayuda y consejo.

Estoy creando un aplicación de un recetario. Para ello tengo una tabla con alimentos y otra tabla con recetas con una relación N..N, pues un alimento puede estar incluído en más de una receta y una receta normalmente tiene muchos ingredientes.

La aplicación es sencilla: pongo el nombre de un alimento para que me muestre las diferentes recetas que contengan ese ingrediente.

El problema es el siguiente: quiero que la aplicación me reconozca sinónimos, por decirlo de alguna manera. Por ejemplo, al hacer una búsqueda para "plátano", también quiero que me aparezcan las recetas para las "bananas" y me las muestre también. No sé si el plátano y la banana son iguales, pero para este ejemplo es lo que se me ha ocurrido y los tomaremos como que son lo mismo.

Aparte de esto, también puede pasar que no tenga ninguna receta para el alimento que busco (el recetario al principio está vacío y se va completando con el tiempo). Para esos casos me gustaría que me mostrase qué alimentos son parecidos, para hacer otra búsqueda. Por ejemplo, puedo buscar "pechuga de pollo" y no tener ninguna receta. En este caso me gustaría que saliese una lista con alimentos parecidos, como puede ser la "pechuga de pavo".

¿Qué tablas y/o relaciones tendría añadir al planteamiento inicial? ¿Alguna otra sugerencia?

Gracias de antemano, espero que alguien pueda ayudarme.
  #2 (permalink)  
Antiguo 17/01/2011, 08:22
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Base de datos con alimentos "iguales" y "parecidos"

Pues basicamente neceitaras un diccionario de sinonimos y otro de "parecidos" por decirlo de alguna forma, no me he planteado nunca la mejor estructura para diccionarios de este tipo pero seguro que la red esta llena de ejemplos o analisi...

Lo que no puedes pretender es que la bbdd sepa que un platano y una banana son lo mismo si no se lo dices tu, o que el pollo y el pavo se pueden considerar como alimenticiamente parecidos...

Puestos a imaginar tambien podrias establecer conjuntos de recetas parecidas... eso te será más facil puesto que la propia base de datos te puede decir que recetas se parecen....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 17/01/2011, 09:17
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Base de datos con alimentos "iguales" y "parecidos"

Lo primero que se me ha ocurrido es una relación N..N en la misma tabla de alimentos. Pero de esta manera tendría información repetida por cada sinónimo, y eso habría que evitarlo. No tiene sentido meter los datos de anchoa, y luego tener que meter los datos de boquerón también.

En cuanto al diccionario, no soy capaz de encontrar nada sobre la estructura. Todo lo que encuentro en google es informacion sobre diccionario de datos...

¿Alguien tiene alguna sugerencia al respecto?
  #4 (permalink)  
Antiguo 17/01/2011, 20:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Base de datos con alimentos "iguales" y "parecidos"

Cita:
Iniciado por jonnyeus Ver Mensaje
Lo primero que se me ha ocurrido es una relación N..N en la misma tabla de alimentos. Pero de esta manera tendría información repetida por cada sinónimo, y eso habría que evitarlo. No tiene sentido meter los datos de anchoa, y luego tener que meter los datos de boquerón también.

En cuanto al diccionario, no soy capaz de encontrar nada sobre la estructura. Todo lo que encuentro en google es informacion sobre diccionario de datos...

¿Alguien tiene alguna sugerencia al respecto?
En una relación N:N no existe repetición de datos. Lo único que se relacionan son las PK de ambas tuplas, porque además una relación N:N crea una nueva tabla donde la PK está compuesta de la sPK relacionadas.
Una relación N:N, podría servir para tu caso perfectamente porque al almacenar la clave de registro de "POLLO" con la de "PAVO" y los demas productos similares, si haces una consulta puedes obtener toda la lista de "parecidos".

No te olvides: Sólo se trata de una tabla relacional. No hay duplicación de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 18/01/2011, 02:06
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Base de datos con alimentos "iguales" y "parecidos"

Cita:
Iniciado por gnzsoloyo Ver Mensaje
En una relación N:N no existe repetición de datos. Lo único que se relacionan son las PK de ambas tuplas, porque además una relación N:N crea una nueva tabla donde la PK está compuesta de la sPK relacionadas.
Una relación N:N, podría servir para tu caso perfectamente porque al almacenar la clave de registro de "POLLO" con la de "PAVO" y los demas productos similares, si haces una consulta puedes obtener toda la lista de "parecidos".

No te olvides: Sólo se trata de una tabla relacional. No hay duplicación de datos.
Tienes razón para el tema de alimentos "parecidos" ya que hay que meter lo datos de todos los alimentos sí o sí, pero el problema sería en el tema de "iguales". Pongo un ejemplo, a ver si me hago entender. Para poder relacionar "ANCHOA" y "BOQUERÓN" tengo que tener ambos registros rellenados. Imaginemos que la tabla alimentos contiene 20 campos (ID, NOMBRE, TIPO ALIMENTO, VALOR NUTRICIONAL, PRECIO MEDIO,... hasta 20 campos). Veo dos opciones para trabajar con esto:

- Rellenar los 20 campos de los dos registros con los mismos datos (ya que son lo mismo). Por esto decía que tendría datos repetidos. Además, para todos los sinónimos puede traer un trabajo considerable.
- Dejar un registro rellenado completamente (siendo el registro principal, por decirlo de alguna manera), y los sinónimos solo con los datos obligatorios (ID y NOMBRE por ejemplo). En este caso, ¿estaría bien tener registros con varios campos vacíos? ¿Que sistema se suele usar en estos casos para intentar guardar la base de datos consistente? Quiero decir, para tener un sinónimo, tiene que haber primero un registro principal, ¿cómo controlo esto?

¿Veis alguna otra opción?
  #6 (permalink)  
Antiguo 18/01/2011, 03:22
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Base de datos con alimentos "iguales" y "parecidos"

Tu mismo te estas contestando.

TablaProdPrincipales
idProdPrincial
..sus 20 campos...

TablaProductos
idProducto
idProdPrincipal
nombre

TablaParecidos
idParecido
idProductoA
idProductoB

Relaciones

TablaProdPrincipales 1:N TablaProductos

TablaProductos N:N TablaProductos --> TablaParecidos

Los sinonimos serian todos los registros de productos con el mismo producto principal.

En la tabla parecidos deberias evitar la duplicidad. Si tienes la pareja A/B no entres la pareja B/A.

En cuanto a lo que te decia de las recetas parecidas, debes establecer criterios de porcentage de ingredientes iguales o parecidos, forma de elaboración, valores alimenticios... y via query obtener los conjuntos.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 18/01/2011 a las 03:38
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 23:18.