Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Bases de Datos General (http://www.forosdelweb.com/f21/)
-   -   Como Validar Materias con sus correlativas (http://www.forosdelweb.com/f21/como-validar-materias-con-correlativas-733708/)

donramone 07/09/2009 23:57

Como Validar Materias con sus correlativas
 
Hola saludos para todos.
Espero que alguien pueda darme una mano, por que soy medio nuevo con esto
Basicamente estoy perdido en como armar las tablas para que un alumno pueda autogestionar sus inscripciones.
Lo que necesito:
El usuario seleccione un año en que se va anotar y el sistema muestre las materias de ese año que pueden anotarse por que no poseen correlativas, las materias que posen correlativas pero el alumno ya aprobo sus correspondientes correlativas y las materias de años anteriores que no aprobó y debe recursar.
Mi planteo
A modo de ejemplo voy a quitar algunos campos como carrera, legajo y demás para hacerlo mas legible a lo que busco.
4 Tablas:

Materias ( id_materia, nombre, curso)
Correlativas (id_correlativa, id_materia,correlativa01...(hasta 4))
Notas (id_nota, id_materia, Estado - estado no existe, tengo las 4 notas + la nota final, pero vamos suponer que si es = a 3 aprobo si = a 2 la tiene firmada en la libreta pero la tiene que rendir y si es = 1 debera recursarla)

Y por ultimo tengo la tabla donde voy a guaradar las inscripciones.
Inscripciones (id_isncripcion, id_legajo, id_materaia)

De por si no creo que haya planteado muy bien la logica de las tablas, pero eso es lo que se me ocurrió.

Lo que no se es como hacer una consulta que me haga todo ese control (suponiedo que esten bien esas tablas)
Estas son las consultas que se me ocurren, pero con ninguna hago nada, necestio armar una buena sola consulta

Puedo abrir las materias que curso = a lo que me selecciona el usuario (pero no sabria como controlar si le corresponde anotarse)

puedo controlar si una (con varias no sabria hacerlo) correlativa esta aprobada de este modo

SELECT * From correlativas INNER JOIN notas ON correlativas.correlativa01 = notas.id_materia Where estado <> 1.

Bueno yo me estoy formando a los palasos, asi que sepan entender si cometi por ahi alguna barrabasada, hace dias que no puedo contra esto, espero que alguien me pueda orientar.
Saludos!

mortiprogramador 11/09/2009 22:03

Respuesta: Como Validar Materias con sus correlativas
 
Hola
Que son las coo-relativas para ti?
me parece que podrías explicar un poco mejor tu tarea para ver si se da alguna solución, saludos

donramone 13/09/2009 12:49

Respuesta: Como Validar Materias con sus correlativas
 
Hola, disculpame no me di cuenta, pense que se iba a enteder a lo que me refiero con materias correlativas.
Con que una materia tenga Correlativa quiero decir que es necesario tenerla aprobada antes para poder anotarse o rendirla.
Ej: No se podra cursar Matematica II hasta no haber aprobado su correlativa "Matematica I".
Gracias por responder, espero que puedas ayudarme

mortiprogramador 13/09/2009 16:38

Respuesta: Como Validar Materias con sus correlativas
 
Hola, pues esta bastante interesante lo que tienes que hacer y de hecho se cruza con algo
que estoy haciendo con un amigo pero que lo tenemos más enfocado hacia la parte estudiantil que
a la parte operativa de la institución

Bueno, no se que es eso de los legajos, nomenclatura argentina no conozco mucho (digo argentina por tu pais según el perfil que tienes en forosdelweb) !!!

Pero yo plantearía algo así:

carreras
idcarrera
nombre

estudiantes
idestudiante
nombre

estudiantescarreras
idestudiantecarrera
idestudiante
idcarrera

materias
idmateria
nombre

materiascorrelativas
idmateriacorrelativa
idmateria
idcorrelativa

estudiantesmaterias
idestudiantesmaterias
idestudiantecarrera
idmateria

notas
idnota
idestudiantesmateria
nota1
nota2
nota3
nota4
notafinal

Como funcionaria lo que tengo?
Bueno, pues tienes la tabla de las carreras que ofrecen (lo enfoque a una universidad) pero esto se podría
cambiar a cursos o bueno, como sea

La tabla estudiantes donde guardas lo que a ellos se refiere

La tabla estudiantescarreras, esta es de las primeras interesantes pues va a guardar
el id de la carrera y del estudiante (esto pensando en que un estudiante se pueda
inscribir a una o varias carreras)

Tendriamos también la tabla materias en donde estarian todas las materias

Vienen luego 2 tablas interesantes

materiascorrelativas y estudiantesmaterias

materiascorrelativas tendra el idmateria y el idcorrelativa , donde ambos son ids de materias,
pero el primero (idmateria) es el id de matematicas1 por ej y el segundo (idcorrelativa) es el de matematicas2,
esto nos dira que matematicas1 tiene una correlativa que es matematicas2, si hubiera matematicas3, esta como yo
lo veo es coorelativa tanto de matematicas1 como de matematicas2 , y asi por tantas ocurrencias como haya, por ende
en esta tabla repetiriamos tantos registros como coorelativas necesitemos para cada materia

estudiantesmaterias nos dira por medio del idestudiantecarrera que lo toma de la tabla estudiantescarrera
cual carrera y cual estudiante es al que le vamos a asignar materias, y idmateria es cada materia que
tenga asignada (por ende aqui estaran todas las materias que tiene un alumno en una carrera en tantos
registros como se necesiten)

finalmente tengo una tabla notas donde tomo el idestudiantemateria de la tabla estudiantesmaterias,
para saber a que materia de la carrera que esta haciendo el estudiante debo asignarle notas, y pues
manejo por cada estudiantemateria un registro donde guardo las notas y la notafinal

Enredado??? si, tal vez un poco, pero pues yo lo dividiría así por cuestiones de modelamiento
de bd, obviamente si se quiere hacer mas complejo se le pueden asignar tablas de profesores, aulas, etc,
tanto como queramos

Repito, es bastante interesante pero igual un proyecto de estos bien hechos conlleva bastante análisis,
paciencia y tiempo de parte de todos los involucrados, pero si es todo para ya como suele serlo.... pues
no queda mas que hacerse camino y despues sobre la marcha tapar los huecos que se vayan encontrando...
Suerte en tu proyecto entonces
Saludos

donramone 13/09/2009 18:05

Respuesta: Como Validar Materias con sus correlativas
 
Muchas gracias por responderme, disculpa por las palabras en argentino pero no se como decirlas de una forma mejor.

por suerte tengo planteadas muy muy similar las tablas a como vos las planteaste, excepto la de correlativas que la habia planteado mal (agrege campos correlativa01 .. hasta 04)
las demas son identicas salvo que tengo mas tablas por ejemplo plan de estudios (ya que pasados unos años, pueden modificar las materias de una carrera) el proyecto es mucho mas complejo por ahora tengo 21 tablas (profesores,horarios,etc) las cuales obvie por que queria enfocarme solo en el control de las materias correlativas.

Por mala suerte sigo teniendo la duda del control, lo que no se como hacer es la consulta en esas tablas.
SELECT Nombre_materia From ¿materia? Where "las materias sean del curso seleccionado y materias que recursar del curso anterior, se fije si las materias tiene correlativas o no y si tienen que controle la nota para ver si estan aprobadas."
Bueno espero que me hayas entendido (y no haber puesto algo en argentino) y puedas darme una mano.
yo no manejo bien los Inner Join cross join.. o sub consultas, me imagino que abra que hacer algo de eso, estoy enredado con esa consulta, espero que me puedas orientar


PD: El legajo, es el identificador unico que le dan al alumno cuando se inscribe.

mortiprogramador 13/09/2009 22:19

Respuesta: Como Validar Materias con sus correlativas
 
Hola
Tranquilo, no problem

Pues intenta con esto

Código sql:
Ver original
  1. SELECT nombre
  2. FROM materias
  3. INNER  JOIN correlativas ON materias.id_materia = correlativas.id_materia
  4. INNER  JOIN notas ON correlativas.correlativa01 = notas.id_materia
  5. WHERE estado <>1
  6. LIMIT 0 , 30
Esto con el modelo que tu tienes inicialmente
Para el mio, bueno, habria que hacerle modificaciones pero pues funcionaria similar
Nos cuentas
saludos


La zona horaria es GMT -6. Ahora son las 19:24.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2024, Jelsoft Enterprises Ltd.