¿Es bueno tener detalles de trabajo en la tabla de colas de trabajo o tener los detalles en una tabla separada?
-
12-12-2019 - |
Pregunta
Actualmente estoy diseñando un módulo donde una aplicación de servicio o consola estará leyendo el trabajo de una tabla Jobqueue.He diseñado la tabla Jobqueue con la siguiente información en ella:
JOBID: INT PRAMARKEY
JOBTYPE: INT Notnull
Estado: VarChar Notnull
Creado: DateTime Notnull
LastModifiedon: DateTime Nullable
completando: DateTime Nullable
El atributo JOBTYPE se introduce principalmente para mantener esta tabla más genérica, que hacia un tipo particular de trabajo.¿Mi pregunta es si mantener los detalles para que el trabajo se ejecute en esta tabla en sí misma o alguna otra tabla con la ID de trabajo que lo hace referencia?Esto se debe a que tengo los datos disponibles en alguna otra tabla.Entonces, al tiempo que ejecuta el trabajo podemos buscar indirectamente los datos.Para evitar duplicar la información, pensé en algo como esto.¿Es este un buen enfoque?Necesita su consejo sobre este
Solución
Mantenga los datos que tenga en esa "otra tabla" en esa tabla.Lo que necesita tener en cuenta aquí es cómo va a usar los datos.
Si va a mostrar algún trabajo indexado desde donde se puede seleccionar uno para ver los detalles, puede obtener sus datos en dos recuperaciones separadas.O si necesita todos los datos (datos en Tabla Tabla PLUS, más datos en esa "otra tabla") relacionados con un trabajo, siempre puede ejecutar una sola búsqueda con une.No creo que el mantenimiento de los datos de JobDetails en una tabla separada cause ningún problema.
Otros consejos
No veo muchos atributos aquí (¡tal vez no mostró esos?)
Veo una ID (JOBID) Claramente, escriba y información estatal (no puedo ver cómo puede hacerlo sin estos datos).
y luego tiene información de audiencia, creada, modificada y completada.A mí mismo me gusta poner una cadena allí para quién creó y quién modificó, pero tengo esa información de audiencia en cada tabla que creo.Siempre es útil cuando no está seguro de qué sucedió y está tratando de mantener la base de datos.