Ayuda con el diseño de base de datos (soy noob)

Iniciado por kaetsuh, 20 Noviembre 2018, 16:31 PM

0 Miembros y 1 Visitante están viendo este tema.

kaetsuh

Hola, buenas, estoy teniendo un pequeño problema, voy a tratar de ser lo mas especifico posible..
Tengo que diseñar una base de datos para una app de escritorio escrita en c# que simula un boletin escolar..
En este sistema, se pueden realizar A/B/M De profesores, alumnos, preceptores, cursos, materias...
Cada usuario tiene un rol dentro del sistema..
El alumno solo se puede logear a ver sus notas
El profesor puede ver las materias que da y hacer A/B/M de las notas de los alumnos que tiene en esa materias.
El preceptor checkea, y hace un alta de las faltas en el mismo boletin que el alumno (solo que este si lo puede editar)
y luego esta el admin que es un administrativo que se encarga de hacer a/b/m en general de todo..

En el tema de programacion no ando desorientado, es mas ya estoy bastante avanzado en ello, lo que me limita es el diseño de la base de datos, la he rediseñado muchas veces, pero siempre termino encontrando errores al querer hacer a/b/m de cursos, materias, etc...

Un problema que no se bien como solucionar tambien, es que el username para el logeo de usuarios siempre tiene que ser el DNI de ese usuario (esto obligatoriamente), pero este DNI se debe guardar en las tablas alumnos,profesores,preceptores segun yo....

Las tablas minimas segun entiendo tendrian que ser
usuarios (username,password, id_rol) , rol
rol (id_rol, nombre rol)
alumnos (??? ( tendria que poner un id alumno?) , alumnoDNI, nombre, apellido, curso
profesores ( idem arriba, ( profesor debe tener un id_profesor? o su dni tendria que ser su clave primaria), nombre, apellido)
preceptores ( lo mismo, no se si poner un id o su dni como clave), nombre, apellido)
cursos (curso_id, año, division, preceptor(index))
materias (id materia, nombre, preceptor, curso)
y luego una tabla notas por cada trimestre supongo...

Si alguno me puede dar una mano se lo agradeceria mucho.

ThunderCls

Si como dices no has tenido problemas en la parte de "programacion", entiendo que tienes todas tus clases creadas correctamente al igual que las relaciones entre ellas, genial. Solo necesitas ahora mapear tu modelo de clases a un modelo de datos, o lo que es lo mismo, transformar tus clases y sus relaciones a tablas en tu base de datos, normalizar y listo, con eso obtienes tu modelo fisico.
Suerte
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/