Chapter 6 Discussion
6.4 Further thoughts on technique
Se utiliza la base de datos no relacional MongoDB por esta razón se describe las colecciones y la estructura de los documentos que componen a cada una:
Nombre colección: users
Descripción: Almacena los datos de los usuarios (coordinador, laboratoristas, docentes y estudiantes)
Campo Tipo de dato Descripción
username String Código del usuario
password String Contraseña del usuario
name String Nombres del usuario
lastname String Apellidos del usuario
full_names String Nombre completo del usuario
phone String Número de teléfono fijo del usuario
mobile String Número de teléfono móvil del usuario
email String Correo electrónico del usuario
creator:
ObjectId Identificador del usuario que crea o modifica el registro
status: ObjectId Identificador del estado del usuario profile: ObjectId Identificador del perfil del usuario career:
ObjectId Identificador del proyecto curricular a que pertenece el usuario
created: Date Fecha de creación del usuario
updated:
Date Fecha de última actualización del usuario
Tabla 1. Colección users
Nombre colección: profiles
Descripción: Almacena los datos de perfiles, un usuario debe tener un perfil
Campo Tipo de dato Descripción
name String Nombre del perfil
description String Descripción del perfil routes
[{route:
ObjectId, _id: boolean}]
Arreglo que contiene la identificación de las rutas a las que tiene acceso el perfil creator ObjectId Identificador del usuario que crea o
modifica el perfil
status ObjectId Identificador del estado del perfil
created Date Fecha de creación del perfil
updated Date Fecha de última actualización del perfil
53 Nombre colección: metrics
Descripción: Almacena la información de proyectos curriculares, laboratorios, tipos de práctica, prácticas guiadas y ubicaciones de almacenamiento
Campo Tipo de dato Descripción
name String Nombre de la métrica
type String Nombre del tipo de métrica
code Number Código asignado a la métrica
description String Descripción de la métrica metric_rel
{career: ObjectId, practical_type: ObjectId}
Arreglo que contiene el identificador del proyecto curricular y el identificador del tipo de práctica.
Tabla 3. Colección metrics
Nombre colección: teachers
Descripción: Almacena información adicional para los usuarios que tienen el perfil de profesores
Campo Tipo de dato Descripción
user_id ObjectId Identificador del docente
career_id ObjectId Identificador del proyecto curricular subject_id ObjectId Identificador de las asignaturas
date_admission Date Fecha de admisión
semester_admission ObjectId Identificador del semestre de admisión
status ObjectId Identificador del estado de los
docentes
update Date Fecha de la última actualización de los
datos
Tabla 4. Colección teachers
Nombre colección: subjects
Descripción: Almacena los datos de las materias y asocia con los proyectos curriculares
Campo Tipo de dato Descripción
code Number Código de la materia
name String Nombre de la materia
description String Descripción de la materia
career_id [{ ObjectId }]
Arreglo que contiene los identificadores de los proyectos curriculares
status ObjectId Identificador de estado
updated Date Fecha de última actualización de los datos
54 Nombre colección: providers
Descripción: Guarda la información correspondiente a los proveedores
Campo Tipo de dato Descripción
name String Nombre del proveedor
supply String Bien o servicio suministrado por el proveedor
importance String Importancia (crítico o no crítico del proveedor)
city String Ciudad que está ubicado el proveedor
address String Dirección del proveedor
phone { mobile: String,
fixed: String }
Número de teléfonos fijo y móvil del proveedor
email String Correo electrónico del proveedor
status String Estado actual del proveedor
selection { date: Date, value_r: String, criterion_r: String, observation: String}
Resultados de selección del proveedor
Tabla 6. Colección providers
Nombre colección: entries
Descripción: Guarda la información referente a las entradas de almacén
Campo Tipo de dato Descripción
invoice String Número de la factura que entrega el proveedor
date Date Fecha de entrada al almacén
date_registry Date Fecha y hora actual que se realiza el presente formulario
Username ObjectId Identificador del usuario coordinador o laboratorista que recibe
per_delivery String Nombre de quien entrega el material
entry String Entrada
contract String Tipo de contrato con el proveedor
provider_id ObjectId Identificador del proveedor description [{ group: String, unity: Number, quantity: Number, description:
Arreglo que contiene la descripción de la entrada de almacén (grupo, unidad, cantidad, descripción del equipo y ubicaci)
55 String, location: ObjectId }]
Tabla 7. Colección entries
Nombre colección: stocks
Descripción: Almacena los datos de la ficha técnica de los equipos
Campo Tipo de dato Descripción
entry_id ObjectId Identificador de la entrada de
almacén
entry_val ObjectId Identificador de la descripción de equipos en la entrada de almacén
code String Código del equipo
succession String Serie del equipo
trademark String Marca del equipo
equipment String Nombre del equipo
model String Modelo del equipo
state String Estado de adquisición del equipo
laboratory_id ObjectId Identificador del laboratorio donde se utilizara el equipo
location_id ObjectId Identificador de la ubicación donde se almacena el equipo characteristics { power: String, voltaje: String, kw: String, amperaje: String }
Características detalladas del equipo
description String Descripción del equipo
photo String Foto del equipo
handbook String Manual del equipo
observations String Observaciones del equipo
status ObjectId Estado de disponibilidad del equipo
Tabla 8. Colección stocks
Nombre colección: maintenances
Descripción: Almacena información referente a los mantenimientos preventivos y correctivos
Campo Tipo de dato Descripción
stocks_id ObjectId Identificador del equipo o material que está en el inventario
type ObjectId Tipo de mantenimiento
controls_id ObjectId Identificador del mantenimiento preventivo programado
date Date Fecha de ejecución del mantenimiento
56
solution String Solución ejecutada en el
mantenimiento
spare_parts String Repuestos utilizados en el
mantenimiento
user_id ObjectId Identificador del laboratorista que realizo el mantenimiento
status ObjectId Estado de ejecución del
mantenimiento
Tabla 9. Colección maintenances
Nombre colección: controls
Descripción: Guarda los datos sobre la programación de horarios de los mantenimientos preventivos
Campo Tipo de dato Descripción
stocks_id ObjectId Identificador del equipo que está en el inventario
check_id ObjectId Identificador del control
date_schedules Date Fecha programada del mantenimiento preventivo
user_id ObjectId Identificador del laboratorista que realiza la programación
status ObjectId Estado de ejecución del
mantenimiento preventivo
update Date Fecha de última actualización
Tabla 10. Colección controls
Nombre colección: schedules
Descripción: Almacena los datos de los horarios de los laboratorios
Campo Tipo de dato Descripción
semester ObjectId Identificador del semestre del horario de laboratorio
year String Año del horario de laboratorio
date Date Fecha que se realiza el horario de
laboratorio
day ObjectId Identificador del día que se utiliza algún laboratorio
hour ObjectId Hora que se utiliza algún laboratorio
laboratory_id ObjectId Identificador del laboratorio
career ObjectId Identificador del proyecto curricular
teacher ObjectId Identificador del docente
subject ObjectId Identificador de la materia
creator ObjectId Identificador del usuario que registra la programación
57
status ObjectId Estado del horario de laboratorio
created Date Fecha de creación del registro
updated Date Fecha de última actualización
Tabla 11. Colección schedules
Nombre colección: requests
Descripción: Guarda información referente a las solicitudes de práctica
Campo Tipo de dato Descripción
consecutive Number Consecutivo de la solicitud de práctica
user_id ObjectId Identificador del usuario o docente que realiza la solicitud de práctica
date_created Date Fecha de creación del registro
year String Año de creación del registro
semester ObjectId Identificador del semestre
day ObjectId Identificador del día que se programa
la solicitud de práctica
hour ObjectId Identificador del bloque de hora que
se programa la solicitud de práctica practice_type ObjectId Identificador del tipo de práctica practice_guided ObjectId Identificador de la práctica guiada
practice_name String Nombre de la práctica
laboratory_id ObjectId Identificar del laboratorio donde se va realizar la práctica
date_request Date Fecha de creación de la solicitud de práctica
observations String Observaciones de la solicitud de práctica
user_receives ObjectId Identificador del laboratorista que recibe la solicitud de práctica
state ObjectId Estado de ejecución de la solicitud
Tabla 12. Colección requests
Nombre colección: practices
Descripción: Almacena los datos referentes a las solicitudes de materiales
Campo Tipo de dato Descripción
requests_id ObjectId Identificador de la solicitud de práctica asociada
university String Nombre de la universidad
subject_id ObjectId Identificador de la materia
users ObjectId Identificador de los usuarios para la solicitud de material
58 equipment [{ stocks_id: ObjectId, delivery: ObjectId, receives: ObjectId }]
Materiales, equipos e insumos. (Identificador del equipo que está en el inventario, identificador del usuario que recibe los materiales e identificador del laboratorista que entrega los materiales)
observation String Observaciones de la solicitud de material
status ObjectId Estado de ejecución de la solicitud de material
update Date Fecha de última actualización
Tabla 13. Colección practices