Puntero Indirecto Real y Virtual , ejemplos y conclusiones

Ir a la página principal: Fundamentos en Velneo, análisis en el Modelo Real


Un puntero indirecto es aquel que podemos resolver a nuestra discrección.

Si es Real, tendrá contenido y su resolución se realizará en el momento se crea el registro desde el que apuntamos, por tanto permitirá lanzar actualizaciones. Al definirlo por tanto , los registros antiguos no tienen el puntero creado, teniendo en ese caso que lanzar algún proceso sobre la tabla y modificando alguno de los parametros que intervienen en su resolución para que se actualicen lso registros y los punteros sean efectivos.

Si es virtual, se resuelve en tiempo de ejecución, cuando necesita acceder a algún campo del registro enlazado. No tiene contenido, por tanto su mera definición, auqneu las tablas ya tengan registros tendrá funcionalidad inmediata sobre los registros existentes antiguos.

Veamos un ejemplo de enlace Indirecto Virtual

  • Creamos una tabla de tarifas con un precio que depende del Articulo y la zona.
  • Esa tabla de tarifas tendrá un Indice con una clave única por registro con esos dos valores (Zona, Articulo) y como campo el precio unitario.
  • Desde lineas de factura podemos entonces definir un puntero a esa tabla y lo resolvemos con el País (Dato del que disponemos gracias al acceso que tendremos mediante los punteros (Detalle -> Factura -> Cliente -> Etc ) y Articulo que estará en la misma linea de detalle
  • Si tenemos esto podemos ya

    – En una rejilla, informe, etc de lineas de factura mostrar el nombre de la tarifa que le corresponde, obvio.
    – El campo precio en la linea de factura obtenerlo directamente de la tarifa, sin resolver nada como podemos ver en el ejemplo que nos aparecerá al darle un valor inicial en dicho campo.

    Utilizando estos datos en un Valor Inicial

    Cuando damos el alta de la linea de factura, tomaría el precio en ese momento de la tarifa.
    Si modificamos una linea de Factura y cambiamos el articulo o cambiamos el cliente, nos cambiará automaticamente el precio, de nuevo y recalculará el importe.

    Y lógicamente si cambiamos cualquier dato de la tabla tarifas, este no afecta a las lineas de detalle antiguas, ya introducidas.

    ¿Nos vamos dando cuenta de lo que nos permite Velneo en la base de datos?

    Lo cual implica que basta con ver nuestras definiciones en ella para entender la lógica de nuestra aplicación, sin tener que mantener o escudriñar entre cientos de lineas de código para encontrar como actua nuestra aplicación en cada caso, eso nos proporciona rentabilidad, pues importa mucho cuanto de vieja y olvidada tenemos nuestra aplicación o cuanto de malo era el programador original documentando.



    Nota : Cuando usar y cual es la diferencia entre un puntero indirecto virtual y un puntero indirecto real

    Si vamos a hacer actualizaciones sobre ese enlace, necesitaremos un enlace Real, por ejemplo, desde lineas de Factura, creamos un enlace sobre una tabla de estadisticas, en ese caso, necesitamos un enlace real, pues si no no es posible defnir una actualización, y queremos que si cambia o se da de alta una linea de factura nos actulice un campo del registro enlazado,

    Si, no, como es el caso mostrado en el ejemplo de las tarifas desde linea de detalle, no hace falta, pues solo vamos a acceder a esa tabla a leer y en todo caso no van a existir actualizaciones automáticas desde lineas de detalle

    Algunos Ejemplos de Enlaces Indirectos Reales.

    Supongamos que tenemos una gestión de existencias complicada, sobre unas tablas con un indice Empresa,Almacen,Articulo . Es posible que tengamos que usar un puntero indirecto para enlazar desde lineas de movimientos. Si deseamos crear una actualización para que mueva al santidad Entradas y Salidas residente en ese fichero, estamos obligados a utilizar la opcion Puntero Real, la virtual no nos sirve.

    O por ejemplo , queremos crear una tabla de estadistica permanente que nos muestre las ventas por Delegacion, Gama de producto y Vendedor. SI deseamos que la actualización se realice automaticamente, necesitaremos que sea Real.

    NOTA : PAra estos casos anteriores en lso que todos lso movimientos son automaticos gracias a las actualizaciones, lo habitual es crear un trigger anterior al alta en la tabla de movimientos que compruebe que existe el registro en la tabla Indirecta y de no existir de el alta, el resto de movimientos será autómatico



    Ir a la página principal: Fundamentos en Velneo, análisis en el Modelo Real

    Anuncios

    Acerca de Miguel Pérez Oliver
    Consultor de Velneo, Responsable Captación Latam y España (Hoy) . General Manager Iber Corporation, Fl,Usa (2 Años) Director de Producción y Compras Satiber (3 Años) CIO Grupo Iber (7 Años, 6 empresas internacionales y 400 usuarios) Programador Independiente (2 Años) Responsable Proyecto Sial (Sistema Informático para la Administración Local) Responsable Soporte área de Levante Microinformática , grupo Bull (2 Años) Experiencia en diversos lenguajes de programación, bases de Datos, dirección departamentos informática, organización, producción, comercial y gestión de compras. Mperez@velneo.com

    One Response to Puntero Indirecto Real y Virtual , ejemplos y conclusiones

    1. Pingback: Fundamentos de Velneo : El Modelo Real de Base de Datos « Miguel Pérez Oliver

    Responder

    Introduce tus datos o haz clic en un icono para iniciar sesión:

    Logo de WordPress.com

    Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

    Imagen de Twitter

    Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

    Foto de Facebook

    Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

    Google+ photo

    Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

    Conectando a %s

    A %d blogueros les gusta esto: