Perfiles de Datos
Los perfiles de datos permiten filtrar la información disponible al usuario de forma transparente al código que realiza las consultas y listados.
Por ejemplo supongamos que nuestros usuarios pertenecen a una serie de dependencias (unidades académicas como exactas o humanidades) y solo queremos que vean las materias de las dependencias a las que pertenecen. La forma tradicional de hacerlo es incluir las dependencias en el where de todas las consultas relacionadas a materias o dependencias. Este mecanismo tiene dos desventajas principales
- El filtrado esta disperso por todas las consultas
- Agregar un nuevo criterio implica recorrer y modificar muchas consultas.
Entonces lo que se propone es definir cuales son las Dimensiones por las cuales se puede filtrar la información. Cada dimensión representa a una tabla del sistema indicando la relación que posee con el resto de las tablas del sistema. Así siguiendo nuestro ejemplo la dependencia es una dimensión.
Una vez identificadas las dimensiones es necesario indicar en el perfil
los valores permitidos para cada dimensión. Siguiendo el ejemplo
crearíamos un perfil que incluya a las dependencias Exactas
y
Humanidades
.
Vamos con otro ejemplo, que pasa si deseamos presentar al usuario información relacionada con su ubicación (típico ejemplo de marketing), si sabemos en que país vive el usuario que podemos hacer para un DER como el siguiente?:
Deberíamos entonces definir una dimensión que nos permita filtrar los resultados automáticamente para el usuario y que también nos ayude cuando se presentan combos de selección de ubicación.
Una vez definida la dimensión para la tabla ona\_pais
, pasamos a definir
los gatillos directos (recordemos que son las tablas con FK directas),
pasamos entonces a definir como gatillo directo la tabla ona\_provincia
.
Como vemos, más adelante nos encontramos con la tabla perteneciente a las localidades, esta tabla la incluiremos como gatillo indirecto ya que a pesar de tener FK directa con la tabla de paises, es necesario conocer a que provincia nos estamos refiriendo. Por lo tanto nos queda definida de la siguiente manera.
Como se ve en la imagen anterior, podemos definir el camino de tablas
para llegar desde ona\_localidad
hasta ona\_pais
, si existiera un camino
que involucrara más de una tabla las mismas se deberían separar mediante
comas, en nuestro caso solo existe la tabla ona\_provincia
. Tenemos
explícito el camino, lo que nos falta marcar es como se relacionan
dichas tablas entre si, cúales son las columnas que se matchean, para
ello damos de alta relaciones (ojo no confundir con objetos
datos\_relacion
). Esta operación se encuentra dentro de las
propiedades de la fuente de datos (mirar icono arriba a la derecha).
Una vez tenemos realizados estos pasos debemos asignar al usuario un perfil de datos, para desarrollo esto se puede hacer configurando los datos de previsualización. Para producción la vinculación entre el usuario y su perfil de datos se realiza por medio del proyecto toba_usuarios.