Esquema de database que gestiona hojas de time semanales

Escribo esta publicación porque me preguntaba si alguien podría ayudarme a descubrir cómo será el mejor esquema de database para una aplicación simple de hojas de time.

No puedo entender cómo diagtwigr las tablas que me ayudan a representar las semanas del año, donde todos los usuarios registrarán su trabajo las horas de la semana.

Saludos, y muchas gracias por tu ayuda! 🙂

Guillermo

Compartiré con usted un model típico que usamos, https://www.dropbox.com/s/3wo9qd2fdpe5yow/timesheet_model.png , y describiremos cada una de las tablas:

  • useraccount: información del usuario, inicio de session, etc.
  • proyecto: los proyectos en los que un usuario puede trabajar
  • projectassignment: la asignación de un proyecto a un usuario, por lo que estos son los únicos proyectos que el usuario puede ver y enviar con time
  • hoja de time: información resumida en el parte de horas, qué semana es para, comentarios, etc.
  • Los detalles de la hoja de time: una fila para cada día y cada proyecto con las horas trabajadas, esta tabla crece muy rápido. También incluimos la key foránea projectid en esta tabla para acelerar las consultas
  • aprobación: un logging de las aprobaciones realizadas en el parte de horas, ya que puede haber un rechazo antes de su aprobación

El modelo de datos del parte de horas

Espero que esto ayude

El enlace al esquema de SQL es https://www.dropbox.com/s/uadl5689v9j0jcs/timesheet_model_schema.sql (tardaba demasiado time en formatear para mostrarlo correctamente en línea)