Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   tablas en sql server demasiadas tablas (https://www.clubdelphi.com/foros/showthread.php?t=34416)

yeison Cristman 09-08-2006 08:00:47

tablas en sql server demasiadas tablas
 
!Hola a todos ...... El Dios del Cielo bendiga tu vida....

mi pregunta es yo tengo una base de datos llamada colegio y varias tablas:
ESTUDIANTE
PROFESOR
HORARIO_PRIMERO
HORARIO_SEGUNDO
......
....
....
...
........
HORARIO_3BACHILLER

¿Es necesario tener tantas tablas para hacer un horario de clases que valla desde 1ro de basica hasta 3ro bachillerato? ¿hay una forma mas sencilla?

necesito hacer un horario de clases para cada curso como le hago ....

gracias .....
Jesucristo es el mismo ayer, hoy y siempre....

Neftali [Germán.Estévez] 09-08-2006 09:37:35

Cita:

Empezado por yeison Cristman
¿Es necesario tener tantas tablas para hacer un horario de clases que valla desde 1ro de basica hasta 3ro bachillerato?

Pues seguramente no, si lo diseñas correctamente.
Puesto que TODOS los horarios tienen la misma estructura, está claro que todos deben ir a la misma tabla.

(1) Para cada profesor, curso, franja horaria y día hay un único horario.
(2) Un Curso tiene N alumnos (que tienen el mismo horario)
(**) Tengo dudas de si en un curso puede haber dos horarios diferentes (por esto que se hace ahora de que una misma clase se dividen en dos en una misma hora para cosas diferentes). Si no es así con algo como esto debería valer:

* Tabla Dias
* Tabla Profesores
* Tabla Franjas horaria
* Tabla Cursos
* Tabla de Horarios (foranea a Curso, FranjaHoraria, Profesor, Días).
* Tabla Estudiantes (foranea al curso al que pertenece)

Lo he pensado rápido, es cuestión de darle una vuelta...

Casimiro Notevi 09-08-2006 09:43:30

Puedes tener una tabla "horarios" con los campos oportunos para guardar esos horarios, depende de lo que quieras, por ejemplo: Curso, Materia, Horario, etc...

Edito: Veo que Neftali ya te ha respondido mucho mejor que yo.

Enan0 09-08-2006 14:20:01

Mira yo te aconsejo que hagas el diseño de la Base de Datos y luego hagas un normalizacion de las tablas. con eso vas a poder reducir el numero de tablas y la cantidad de Campos Innesesarios o repeditos en cada tabla.
Y si la estructura esta bien hecha puede que si, TEngas varias tablas pero con la estructura correcta.

por ejemplo. EStudiante y profesor Son personas. entonces deberias tener una tabla personas con

(DNI), Nombre, Apellido, Direccion, Telefono, FechaNac .....

donde DNI Seria tu Clave principal (por lo menos en argentina DNI (Documento nacional de identidad) es unico e irrepetible(salvo que sea trucho pero bueno.))

Un alumo es una persona que asiste a clase como estudiante. por ende la tabla aliumno seria
(DNI),NumeroLegajo.. (aqui depende de la info que quieras puedes tener mas datos, como por ejemplo año o años en curso (si puede cursar mas de un año a la vez)).


Tabla Profesor
(DNI), NumeroLegajo, (CodMaterias),(CodCurso) .....

y asi deberias seguir. dependiendo de la profundidad de lo que quieras hacer la cantidad de tablas. luego para hacer las busquedas deberias relacionar las Tablas por los campos Codigo y con eso tendrias el diseño de la base hecho saludos y espero haberte ayudado un poco
saludos

kuan-yiu 09-08-2006 16:50:57

Uff... Esto me recuerda a la asginatura de Bases de Datos. Bueno, este problema tiene dos soluciones, la del libro (en forma normal de Boyce-Codd) y las aproximaciones.
La del libro en general suele ser demasiado compleja para una aplicación normal (un colegio de barrio), pero inevitable a ciertos niveles (una univerdad).

Todo depende de lo que tengas que controlar y almacenar. ¿Sólo un horario lectivo? ¿Un control de aulas ocupadas? ¿Algún histórico de asistencia? ¿Necesitas saber quien estubo en cada clase, cuándo y dándo qué materia?...

roman 09-08-2006 17:10:24

Como dice kuan-yiu, el que tantas tablas hay, depende de que exactamente tienes que controlar. Por ejemplo, las tablas que te propone Neftali están muy bien para empezar (aunque me queda la duda conceptual de franja horaria), pero pueden aumentar si un curso se da en varios horarios, o si un alumno toma varios cursos, o si un curso puede ser dictado pormás de un profesor, en fin, consideraciones que pueden hacer aparecer relaciones n-n que te obliguen a colocar más tablas.

// Saludos

Enan0 09-08-2006 20:28:11

Cita:

Empezado por kuan-yiu
Uff... Esto me recuerda a la asginatura de Bases de Datos.

Si si, parece eso mismo. Base de Datos y normalizacion.

creo que si debes hacer una base de datos sin saber cual va a ser su crecimiento(o cresimiento, mmm duda), no seria mucho problema Tomarte unas horas y realizar el diseño correcto con su respectiva normalizacion y asi te podras ahorrar una dolor de cabeza.
nunca te olvides del " y ya que estamos la aplicacion puede mostrar esto. y esto." SI estas en tiempo de sieño. aprobechalo y hacelo lo mejor posible.

saludos

yeison Cristman 10-08-2006 05:19:50

demasiadas tablas para un horario de clases
 
!hola a todos el Dios de Abraham, Isaac y Jacob les bendiga mas.

voy a expresarme con bastante claridad...

yo vivo en Republica Dominicana, aqui las escuelas y colegios, voy a decir esto por que tuve la oportunidad de trabajar en las dos instituciones, prosigo diciendo los siguiente....

aqui se da clases de 8:00 am a 12:30 de la tarde, lo que yo quiero capturar es las horas en que se dan las materias, ejemplo. De 8:00 a 8:45 se da matematicas, de 8:45 a 9:25 se da informatica, todo en un lapso de 45 minutos a cada materia se le dedica ese tiempo por dia.

me ha parecido bien la recomendacion de la normalizacion me podria ayudar. de la manera que logre solucionar el problema, aunque se que no esta bien fue esta...

simplemente hice una tabla para 1ro de basica en sql luego en delphi use un dbgrid, use el adoquery y datasource, los campos de la tabla son estos (HORA, LUNES, MARTES,MIERCOLES,JUEVES,VIERNES) de esa manera entro la hora y la materia al dia correspondiente. uno de los problemas esta en que tengo que hacer 13 o 14 tablas para cada curso, y eso es lo que quiero corregir....

Jesucristo es el mismo ayer, hoy y siempre...

Enan0 10-08-2006 16:26:36

Eso es lo que te intento decir con el tema de la normalizacion. Porque site fijas. las estructuras para cada curso es la misma. solo que varia el curso. asique solo con crearte una tabla cusrsos. que contenga.

CodCusro, Nombre, Turno,CodPreseptor (si tiene un preseptor o como se llame alla)

Vas a tener una estructura mas robusta y mas sencilla.
Y que pasaria si el dia de mañana tienen doble escolaridad u horas extras?
o si una materia se dicta de 8 a 9:15.

Creo que el camino mas sensillo es la normalizacion de los datos y hacer la estructura correcta de la Base de Datos.

Saludos


La franja horaria es GMT +2. Ahora son las 15:07:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi