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

Como abstraer un horario en sql?

Estas en el tema de Como abstraer un horario en sql? en el foro de Mysql en Foros del Web. Buenas, yo no se mucho de Bases de datos, pero tengo que hacer un sistemilla que maneja beneficiarios de un apoyo de no se donde.... ...
  #1 (permalink)  
Antiguo 22/09/2012, 15:52
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Como abstraer un horario en sql?

Buenas, yo no se mucho de Bases de datos, pero tengo que hacer un sistemilla que maneja beneficiarios de un apoyo de no se donde....

El cliente entre otras hierbas desea consultar en que escuela esta el beneficiario, que días va a la escuela y cual es su hora de entra y su hora de salida por cada día que puede variar, y los días también varían, puede ir solo de lunes a miércoles, otros van de miércoles a sábado, otros solo los sábados, unos van los viernes de 3 a 7 y otros van los viernes de 7 a 3....

mas que nada me lió con el horario, en cuanto a días/horas como lo puedo hacer? es una tabla o son dos, como se hace la machaca en este punto?

De antemano gracias por sus respuestas compañeros!
__________________
De nada, hay te encargo +1...
  #2 (permalink)  
Antiguo 22/09/2012, 23:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Como abstraer un horario en sql?

Un sistema de horarios, alumnos y cursadas puede implicar entre 7 a 20 tablas sin ningún problema, dependiendo del sistema diseñado y del nivel de complejidad de las relaciones.
Que lo que quieras sea solamente el horario, es irrelevante, porque para llegar a esa consulta, primero necesitas todo el esquema que da soporte a la existencia de los horarios (Alumnos, Profesores, Cursadas, Asignaturas, Cursos, Titulos, Horarios, AreasEstudio, PlanesEstidio, TitulosProfesores, Correlatividades, Inscripciones, Examenes, etc.).
Plantear un esquema sencillo, y que sea utilizable, no es una tarea menor. Con dos o tres tablas no tienes ni para empezar a mirarlo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 23/09/2012, 00:31
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Como abstraer un horario en sql?

No claro que no, en eso estoy de acuerdo, ya tengo parte de las tablas realizada y todas son versiones de prototipo, el sistema no es escolar, de hecho tiene que ver más con apoyos socio-económicos que con la escuela, pero si un apartado de la base de datos se enfoca en saber a que institución asiste el beneficiario y cual es el horario que maneja en el mismo.....

Lo demás ya lo tengo avanzado, lo que me lía es el horario en sí, todo lo demás ya lo considero cubierto, ya tengo la info del beneficiario, sus tutores, su documentación en regla, etc, etc, pero el apartado de el horario en si no se como sería, cada atributo es un día? o el día va en cada tupla con atributos de hora entrada, hora salida, etc, etc...

es decir ignorando el atributo idBeneficiario que obviamente necesito que valla, que otros atributos debe tener la tabla? como manejar eso?
__________________
De nada, hay te encargo +1...
  #4 (permalink)  
Antiguo 23/09/2012, 07:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Como abstraer un horario en sql?

Cita:
es decir ignorando el atributo idBeneficiario que obviamente necesito que valla, que otros atributos debe tener la tabla? como manejar eso?
Estás haciendo la pregunta en abstracto.
Sin ver cómo podemos obtener la información de horarios por alumno, no es posible darte una respuesta concreta.

¿Podrías postear la estructura de tablas con que administras esos dos elementos?
Sin ver eso, no te podemos decir cómo filtrar lo que quieres, ya que se trata de una consulta a un sistema específico.
__________________
¿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 23/09/2012, 22:38
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Como abstraer un horario en sql?

Pero osea, qué es lo que no se entiende? dado este enunciado:

Un alumno se identifica con su "matricula", los alumnos asisten a la escuela varios dias a la semana, puede ocurrir que existan alumnos que solo van los sabados, o también que solo asistan 3 días por semana, se necesita que se pueda saber cual es su hora de entrada y cual es su hora de salida de la institución la cual puede variar dependiendo de el día. Puede suceder que más de un alumno tengan el mismo horario, pero su horario no siempre es el mismo para toda la semana....NO se necesita saber que materias lleva ni si tiene horas libres o receso.. Mediante el atributo "matricula" se deberá poder consultar, a que hora entra y sale un alumno un día determinado, o saber que días sale a cierta hora determinada, o solo conocer que días va a la escuela, tambíen poder consultar todos los alumnos que compartan un mismo horario, o todos los alumnos que salen a determinada hora cierto día...
PD: No necesita modelar la entidad del Alumno, solo de por entendido que tiene una matricula con la cual identificar su horario..

Lo ponemos asi, como se maneja esa parte? hago una sola tabla? con campos matricula, día, horaentrada, horasalida....? es así? por que según me dicen fuentes no confiables que cada atributo de la tabla son los dias y que las horas se manejarían en las tuplas, es decir como si la tabla tuviera los campos matricula, lunes, martes, miercoles, jueves, viernes, sabado.. esa es mi duda, dado ese enunciado como diseñas eso?

De antemano gracias!
__________________
De nada, hay te encargo +1...

Última edición por zero0097; 23/09/2012 a las 22:44
  #6 (permalink)  
Antiguo 24/09/2012, 05:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Como abstraer un horario en sql?

¿Un trabajo práctico?

No te ofendas, pero por política general (que a esta altura de tu participación en FDW, ya deberías conocer), no hacemos trabajos prácticos ni damos soluciones a ejercicios.
SI nosotros pudimos hacerlo por nosotros mismos, tu también.

Si quieres una ayuda, muéstranos qué hiciste hasta ahora para poder guiarte, pero no vamos a darte la solución servida, ni siquiera de una parte.
Postea lo que resolviste hasta ahora, y vemos como sigue.
Como avance te puedo decir:
Cita:
Lo ponemos asi, como se maneja esa parte? hago una sola tabla? con campos ....? es así? por que según me dicen fuentes no confiables que cada atributo de la tabla son los dias y que las horas se manejarían en las tuplas, es decir como si la tabla tuviera los campos matricula, lunes, martes, miercoles, jueves, viernes, sabado.. esa es mi duda, dado ese enunciado como diseñas eso?
Nunca, jamás, ni en pesadillas, creas una tabla que contenga los días de la semana. Eso se hace tomando los datos de las asignaturas en las que se inscribió, para lo cual necesitas saber qué horarios tienen esas asignaturas, y de esa forma poder ubicar a cuáles asiste.
Tampoco modelas algo como "matricula, día, horaentrada, horasalida", precisamente porque el horario no pertenece al alumno, sino a la asignatura. Lo que tiene el alumno es la inscripción a la materia donde se registró.

Respecto al enunciado: La mayor parte ed lo que dice es basura para distraer. Lo único relevante es esto:
Cita:
Mediante el atributo "matricula" se deberá poder consultar, a que hora entra y sale un alumno un día determinado, o saber que días sale a cierta hora determinada, o solo conocer que días va a la escuela, tambíen poder consultar todos los alumnos que compartan un mismo horario, o todos los alumnos que salen a determinada hora cierto día...
Cita:
NO se necesita saber que materias lleva ni si tiene horas libres o receso.
Hay algunas afirmaciones tramposas, porque si no sabes los las materias a que asiste y sus horarios, no puedes conocer los horarios de entrada y salida de cda día.
Así que existen dos formas de resolver el problema:
1) Modelar el esquema de materias, horarios, cursos e inscripciones.
2) Modelar un esquema de horarios para cursos, que contenga esos elementos y a los que se registren los alumnos.
En ambos casos se necesitarán las materias, pero el segundo tiene un esquema rigido de horarios, como la escuela.
El primero me gusta más, porque e más flexible, pero es una decisión de diseño.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 24/09/2012 a las 07:09
  #7 (permalink)  
Antiguo 26/09/2012, 13:08
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Como abstraer un horario en sql?

Bueno, no es una tarea, ese problemilla lo redacte yo de una manera más entendible (disculpe lo de la basura de distracción jaja xD), pero tranquilo yo también estoy en contra de hacer las tareas a los demás......

Respecto al manejo de horarios no he modelado nada de nada, por que no tengo ni idea de como sea la cosa :S... ok ya me dijiste los dias nunca van como atributos de una tabla ok... pero entonces como le hago?

El sistema no es escolar, como lo mencione no interesa saber que materias lleva el alumno o a que horas lleva tal cual materia, eso no le incumbe al cliente....

Lo único que el cliente quiere saber, es que días y de que hora a que hora va a la escuela esa persona... no quiere saber que materias, no quiere saber en que salones, a el no le interesa un carajo, solo quiere saber a que hora entra a la escuela y a que hora sale de la misma y que días va a la escuela...

respecto a las soluciones que me propones, la primera y la segunda no la puedo hacer, por que por lo mismo para que modelar algo que no le interesa saber a quien usará la base de datos, no necesito materias, no necesito cursos, ni inscripcciones.... pero necesito saber su horario de a que horas entra y sale de la escuela y que dias va, eso es lo unico...

En resumen tu me dices que necesito por fuerza modelar las materias... pero eso es algo que no necesita saber el cliente, por que modelar algo que ni le incumbe al cliente? o bien si por el lado "bueno" no es posible hacerlo, como puedo solucionar esto aun que no sea lo más apropiado, pero que me solucione eso.... como es? si le sirve tengo una tabla "carrera" que contiene el nombre de la institución a la que asiste el beneficiario, el semestre en el que esta, el nombre de la misma carrera, y no recuerdo que más (no tengo el material a la mano)... yo se que una institución es una entidad, por que no tengo una tabla institución? por que al cliente no le sirve nada mas que el nombre...

Solo quiero saber como le haría usted, si quiere saber eso, a que hora entra a que hora sale y que dias va, nada más, nada más.....
__________________
De nada, hay te encargo +1...
  #8 (permalink)  
Antiguo 28/09/2012, 11:04
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Como abstraer un horario en sql?

despues de buscar un rato di con la estructura que le había comentado, pero a como dice gnzsoloyo asi no se hace no? y la verdad no me da confianza por que igual era un post informal.... en mi caso el beneficiario tiene su horario, pero según usted (gnzsoloyo) en mi caso debería de ir con la escuela no? (por que materias no manejo)....

Cita:
create table horario(
id_Beneficiario int,
noDiasTotales int(10),
horasDiariasTotales int(10),
horaInicial time,
horaFinal time,
diasSemanales varchar(70),
primary key(id_Beneficiario)
);
__________________
De nada, hay te encargo +1...
  #9 (permalink)  
Antiguo 28/09/2012, 11:17
Avatar de Alexis_Mejias  
Fecha de Ingreso: enero-2005
Ubicación: Santiago
Mensajes: 77
Antigüedad: 19 años, 3 meses
Puntos: 17
Respuesta: Como abstraer un horario en sql?

Podrias usar

tabla de beneficiarios
tabla de Dias
Tabla de Horas
Tabla DetalleBeneficiario, esta ultima con los id correspondientes a las tablas anteriores.

Saudos,
__________________
Alexis Mejias C.
Freelancer Chile - Si te sirvió puntúa positivo
Blog Personal
  #10 (permalink)  
Antiguo 28/09/2012, 11:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Como abstraer un horario en sql?

Cita:
Iniciado por zero0097 Ver Mensaje
despues de buscar un rato di con la estructura que le había comentado, pero a como dice gnzsoloyo asi no se hace no? y la verdad no me da confianza por que igual era un post informal.... en mi caso el beneficiario tiene su horario, pero según usted (gnzsoloyo) en mi caso debería de ir con la escuela no? (por que materias no manejo)....
Esta noche te contesto.
He estado algo atareado...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: horario, tabla
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 03:57.