Generalmente el diseño de los DERs a mi no me cuestan y los suelo sacar de un tiro. Pero en esta lo ando pensando en como encararlo.
Les explico mi caso.
Tengo una relación "muchos a muchos" que como todos saben requiere de una tabla intermedia:
A -1---m- B -m---1- C
siendo -1---m- la relación "uno a muchos".
Esta relación (m,m) consiste en llevar información del tipo histórica. La tabla A contiene la descripción de expedientes, C registra las áreas por las que se mueven los expedientes, y B por tanto contiene el registro de cada movimiento de todos los expedientes por distintas áreas. La tabla B contiene justamente esto:
ID: PK
AID: FK (TablaA.ID)
CID: FK (TablaC.ID)
Fecha: TimeStamp
Observación: varchar
Resulta ser que mi programa tiene diseñado una especie de mini-motor de reglas de validación o de chequeo que va a anlizar los registros que dan forma a esta relación. La cuestión es que hay dos tipos de reglas: generales y específicas.
Las generales aplican a todos, es decir que analizará todo el histórico de todos los expedientes. Cuando se detecta que se cumple dicha regla se asienta esto en una lista que luego se notificará al usuario de los cambios.
Más el problema está en las específicas, y la intención es que el usuario pueda personalizar algunas reglas para que se le notifique de ésto. Es decir:
* el expediente X ha pasado al área Y. O bien,
* el expediente X no se ha movido del área Y en Z días.
Entonces no sólo se trata de reglas generales y específicas sino que además éstas son de 2 naturalezas:
* Reglas de pase al momento: el caso 1.
* Reglas de pase peresozo: el caso 2.
Es decir que se esperan tener reglas específicas y puntuales tanto "In the moment" (casos 1) como las "Lazzy" (casos 2).
Se me chamuscaron los cables al momento de dar forma en la base de datos en cómo registrar esto. ¿Alguna idea o sugerencia? ¿Cómo podría traducir en tablas de modo que pueda diferenciar específicas de las generales, y a su vez las de momento como las peresozas?
Saludos,