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.