Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/03/2015, 01:41
JhondeKharl
 
Fecha de Ingreso: marzo-2015
Ubicación: Carmen
Mensajes: 3
Antigüedad: 9 años
Puntos: 0
Base de datos de un Banco de Reactivos

Muy buenas tardes (o noches, hay para todos los gustos)... Soy nuevo en la comunidad, me interesó sobre todo por los 'pocos' manuales que pude encontrar sobre base de datos y es que me han encargado como proyecto un sistema que Administre un "Banco de reactivos". No deseo que me hagáis mi trabajo, en encanta programar, diseñar y aprender por mi cuenta el problema, como el foro indica, es sobre mi "base de datos", esta sería la primera vez que utilizo BD para mi gran, no grata, sorpresa. . . no entiendo nada. Seré breve en la descripción de mi proyecto, y dolor de cabeza.


Es necesario la creación de un sistema que administre y emplee un “banco de reactivos”. Dicho proyecto permitirá a los docentes, de cualquier Academia (Dígase, DES de Informática, Matemática, Economía, Enfermería, etc), poder subir sus preguntas para que los alumnos de toda la Universidad puedan visualizarlas y responderlas.

Banco de Reactivos: Serie de preguntas con sus respectivas respuestas, es un tipo examen de acuerdo a la materia que estas impartiendo.

Partiendo de dicha primicia, comencé a pensar en una serie de tablas mal logradas, de acuerdo a las funciones que necesitaría mi sistema. Primero los usuarios que entraran en mi programa:

Los usuarios, son los siguientes:
-Alumnos [Son los únicos que responderán las preguntas realizadas por los profesores, además de ver un registro de avances]
-Maestros/Docentes [Crea las preguntas que se almacenarán en la base de datos, puede editarlos y eliminarlos, SIN EMBARGO no puede realizar dichas acciones con las preguntas de los demás profesores, sólo puede verlos {lectura}]
-Administrador General/Líder de la Academia [Mismo rango de los Maestros, con el agregado que puede Editar o Eliminar las preguntas de sus 'subordinados' PERO sólo los de su propia Academia {No puede eliminar/editar preguntas de Informática si pertenece a Socio Económicas}]

Los datos a pedir para el registro, son en todos los casos, los mismos:
-Matricula (Id_usuario) {tanto la matricula como el Numero de Docente son numéricos}
-Nombre (Nombre_usuario)
-Apellidos (Apellidos_usuario)
-Academia (Academia)
-Correo regular (Correo_base)
-Segundo correo (Correo_alter)
-Rol (Rol_moderador) {Aun no planteo muy bien como darle permiso al usuario, por el momento, darle a entender tres opciones a escoger [combo box]}
-Contraseña (Contraseña)


Código MySQL:
Ver original
  1. Usuario
  2.     Id_usuario      INT
  3.     Nombre_usuario  VARCHAR 45
  4.     Apellidos_usuario   VARCHAR 45
  5.     Academia                VARCHAR 45
  6.     Correo_base     VARCHAR 45
  7.     Correo_alter        VARCHAR 45
  8.     Rol_moderador       VARCHAR 45
  9.     Contraseña      VARCHAR 6

Las preguntas están catalogadas de tal modo:
-Matricula<- (Id_usario)
-Identificador de pregunta (Id_pregunta)
-Curso/Materia (Curso)
-Temática/Tema (Temática)
-Pregunta (Pregunta_escrita)
-Imagen (Pregunta_img) {Se sigue valorando si esta opción puede ser válida/funcional, por el hecho que no se como subir imagen a la base de datos}
-Respuesta correcta (Respuesta_ok)
-Respuesta incorrecta 3 (Respuesta_in1)
-Respuesta incorrecta 2 (Respuesta_in2)
-Respuesta incorrecta 3 (Respuesta_in3)
-Número de veces que se ha aplicado (Aplicado_numero)
-Número de veces que se ha respondido correctamente (Respondido_numero)

Código MySQL:
Ver original
  1. Pregunta
  2.     Id_usuario <-      
  3.     Id_pregunta     INT
  4.     Curso           VARCHAR   45
  5.     Tematica        VARCHAR   45
  6.     Pregunta_escrita    VARCHAR   100
  7.     Pregunta_img        VARBINARY 100
  8.     Respuesta_ok        VARCHAR   100
  9.     Respuesta_in1       VARCHAR   100
  10.     Respuesta_in2       VARCHAR   100
  11.     Respuesta_in3       VARCHAR   100
  12.     Aplicado_numero     INT
  13.     Respondido_numero   INT

Y para rematar, se es necesaria (creo yo) otra tabla para los registros de avance de un Alumno usuario.


Código MySQL:
Ver original
  1. Registro
  2.     Id_usuario <-          
  3.     Fecha       DATETIME
  4.     Curso       VARCHAR   45
  5.     Tematica        VARCHAR   45
  6.     Calificacion    INT

Explicación de Funcionalidad: Cada Profesor registra una pregunta, por Curso y Temática. Un curso es propiamente una materia en concreto {Programación 1, Bases de Datos Relacionales, Matemáticas 2, etc.}. Una Temática, son los temas que se desglosan en un Curso {Matemáticas 1: Suma, Resta, Multiplicación División, etc}. Se almacena una Respuesta correcta y tres incorrectas. La pregunta puede ser Imagen {Pregunta_img VARBINARY 100} o textual {Pregunta_escrita VARCHAR 100, es por ello que Pregunta_img y Pregunta_escritas son NULL y no "NOT NULL" como correspondería}. Un Alumno puede escoger un Curso, siguiendo a una temática y automáticamente el sistema escoge 25 pregunta al azar sin importar que Docentes las escribió. Al finalizar, se guarda un registro, dicho archivo contiene la fecha y hora de cuando presentó el "examen", el Curso y tema, además de su Calificación {Preguntas bien contestadas/preguntas totales}.


A grandes rasgos he descrito todo el proyecto, discúlpenme si me he salteado demasiados detalles o no me doy a entender muy bien, llevo tres semanas sólo por crear estas tres tablas, y la desesperación/desvelo me está pasando factura. Estoy utilizando MySQL Workbench para la elaboración. . . de todo. Se me hizo tan intuitivo que casi ni tutoriales necesité.

Mi Problema: Siendo mi primera vez, ¿me hace falta otras tablas? ¿Como "normalizo" estas tablas? ¿Que tipo de dato es necesario para subir una imagen a una BD o que me recomiendan para dicha acción? ¿Como las "conecto"/relaciono? ¿Como sería el diagrama de entidad-relación? Aun no sé como hacer eso de "Llave foránea" en Workbench, ¿como se hace? Así como la imagen a la base de datos (hay una opción que dice Open value in editor pero siempre me manda error)


Sinceramente, espero que me puedan orientar en este proyecto, creí que me llevaría una semana, maximo dos pero ya llevo casi un mes, y sólo he estado leyendo y leyendo pero sigo sin comprender mucho de este enorme mundo de las Bases de datos {si me hubieran permitido con Ficheros, en tres días les habría entregado un proyecto ¬¬}. De antemano, agradezco toda ayuda. Saludos~

Última edición por JhondeKharl; 24/03/2015 a las 02:04