Comunidad de diseño web y desarrollo en internet online

tabla "tridimensional" en BD ??

Citar            
MensajeEscrito el 18 Ene 2009 10:46 pm
Hola, veréis, es que tengo que hacer (a ver si me explico bien), que el usuario rellene un formulario (eso está hecho), pero que dependiendo de 3 Valores, de como resultado un valor. Por ejemplo:

Si el usuario, es "Hombre" , tiene una edad de "25" y su actividad es "sedentaria" entonces tendrá que consumir "X" calorias.

Pues eso, tengo una tabla que hacer (enorme) que dependiendo de esos tres factores, devuelva un valor (en este caso X). En un principio pensé en almacenar en mysql los datos, pero no tengo ni idea de cómo hacerlo, ni siquiera de como empezar.... lo único q se me ha ocurrido es hacerlo con condicionales "todo a mano" tipo, de if(...etc...) {echo...}. Pero me parece que tiene q haber una manera más sencilla, pero no se me ocurre nada....

¿alguien tiene alguna idea?

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ene 2009 11:42 pm
¿como harías el calculo ?

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 19 Ene 2009 12:43 am
Es q no es un cálculo....

Yo tengo impresa una tabla con las diferentes calorías q tiene q consumir una persona dependiendo de esos tres factores, pero al menos en el material que tengo, no hay cálculo alguno. Simplemente hay dos tablas, "masculino y femenino" y dentro de ellas, la edad y la actividad, y luego ver el "cuadrante" que corresponde, las calorias que ahí pone, son las que se devuelve.

Es cómo una partida de ajedrez pero con dos tablas, el jugador A, mueve peón, a fila x, columna y, y ahí, hay otro peón q se lo come, pues eso más o menos así....

Espero explicarme....

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Ene 2009 04:29 pm
Hola Hapki, primero que nada no entendí tu analogía de la partida de ajedréz :lol: :P

Hapki escribió:

Yo tengo impresa una tabla con las diferentes calorías q tiene q consumir una persona dependiendo de esos tres factores
No se, eso me huele a formula... No sé si exista una formula real para calcular eso, pero partiendo de las variables que nombras, se me ocurre es algo así:

Código :

cant_calorias = cal_por_sexo + cal_por_edad + cal_por_actividad
Entonces lo que podrías hacer es que partiendo de cada variable (sexo, edad, actividad) ir armando tu formula, es decir:

Si el sexo es masculino cal_por_sexo = X, sino cal_por_sexo = Y
Si la edad está entre un rango (P - Q) cal_por_edad = A, sino si la edad está entre un rango (R - S) cal_por_edad = B, etc...
Y dependiendo de la actividad cal_por_actividad = J

Pd: crea en tu BD una sola tabla, no hace falta que hagas una tabla por cada sexo, más o menos ésta podría ser la estructura:

tabla_datos:
  • id_persona
  • nombre
  • sexo
  • edad
  • actividad

Por KB-27

Claber

301 de clabLevel



 

My very secret HQ

firefox
Citar            
MensajeEscrito el 19 Ene 2009 06:15 pm
Jeje... cierto. He leido ahora lo del ajedrez, la verdad es q vaya cagada que puse, jeje... en mi defensa, puedeo decir que lo escribí cerca de las 1 de la madrugada, y q el sueño me afectó :P

Bueno, sobre la fórmula le voy a preguntar a la nutricionista, si hay alguna, y si no la hay, sigo sin entender como lo voy a hacer. Pq no sé ni siquiera para que me va a servir la base de datos... lo único q se me ocurre entonces, es recoger las variables (del flash) que elija, y hacer un if en todo, pero eso va a ser eterno, juer, muy eterno.

Pq he estado intentando entender lo que me dices, pero por muchas vueltas q le doy, si lo q me dices es sin fórmula, estoy en lo mismo q lo mismo, unos "ifs" etenos... y si es con fórmula, pues no lo pillo.

Voy a esperar a ver q dice la nutricionista, y os cuento...

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Ene 2009 06:30 pm
Buena idea, pregunta y avisa... Y si, lo que yo digo es con IF o switch() para que se vea mas bonito :lol:

Como no comentaste para que necesitabas eso, pues realmente tmapoco podría decirte si de verdad es necesaria una BD, si los datos no los vas a necesitar luego, ya sea para consultarlos o lo que sea no creo que necesites la BD... En fin, pregunta y vuelve a ver que se puede hacer...

Por KB-27

Claber

301 de clabLevel



 

My very secret HQ

firefox
Citar            
MensajeEscrito el 19 Ene 2009 08:22 pm
Yo cuando he calculado el "Optimal Caloric Intake", lo calculo en PHP y lo guardo en la db como un valor. Tengo un sistema médio y así le hago, no veo el 3D por ningun lado.

saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 19 Ene 2009 08:34 pm
A lo mejor no sea necesario para lo que quieres hacer, pero la tecnología para implementar tablas "multidimensionales" se conoce como OLAP, y sirve para cosas como obtener cálculos estadísticos. Puede implementarse en una base de datos tradicional sin necesidad de nada extra, pero tendrías que modelar tu base de datos con una arquitectura diferente.

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 19 Ene 2009 11:02 pm
Mientras espero la respuesta de la nutricionista....

Lo de "tridimensional" lo puse en el titulo entre comillas, por eso mismo, pq no sabía si lo era o no, como vi tres factores a tener en cuenta, pues por eso lo puse... pero que vamos ni idea....

Odin, podrías (si puedes) darme algún tuto o alguna información sobre como modelar la bd para lo que dices....??

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Ene 2009 05:54 am
Lastimosamente, yo no he sido capaz de encontrar información confiable sobre OLAP en Internet. Lo mejor es que consiguieras algún libro sobre bases de datos para informarte más sobre el tema.

Lástimosamente el tema es muy extenso para explicarlo en un solo post, no sabría por donde empezar, lo mejor es que obtengas un poco de información por tu cuenta y luego yo te asesoro con aquello en lo que tengas dudas.

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 20 Ene 2009 10:40 am
Gracias Odin, creo q lo estudiaré en el curso, lo que ocurre que voy por la sección de php, pero luego tengo todo sobre base de datos, así que ya lo estudiaré (y ya te preguntaré jeje)....

Y... ya TENGO LA FÓRMULA! :) ... Lo que ocurre es q nunca he hecho nada de operaciones matematicas en php, y no sé como plantearla.... os pongo un ejemplo de cómo va la fórmula, a ver si me orientáis de cómo hacerla:

Rango de años de 0-3 años. En un hombre Sería: (60,9 x peso)-54= (y el resultado hay q multiplicarlo por 1,55 si su actividad es ligera, si fuera por ejemplo moderada se multiplica por 1,78 y así sucesivamente) .

Pero claro, no puede darme decimales, tiene q redondearse por centenares, es decir, que si me da por ejemplo 1252 calorias, tengo q redondear a 1300 calorias.

Los datos que he puesto en numeros, van cambiando, no son siempre los mismos.

Y claro, después esas calorias q me dan como resultado, tengo q guardarlas en la base de datos.

Bueno, he intentado plantear en lenguaje php la formula, pero no me sale... a alguién se le ocurre cómo puedo plantearla, siguiendo los datos de ejemplo q pongo arriba??

Mil gracias por vuestra ayuda.

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Ene 2009 08:46 pm
Jooo.. nadie sabe decirme cómo puedo plantearla??? Mira que lo he intentando pero no sale :( ......

Por Hapki

Claber

268 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.