domingo, 11 de noviembre de 2007

Maestro de mí mismo

Con la inestimable colaboración del maestro Agustín:

Todos hemos usado los punteros a maestro y los punteros a histórico para relacionar al menos dos tablas entre sí.

También en algún momento nos puede surgir la necesidad de tener un histórico con registros que pertenecen a la misma tabla.

Veamos estas dos situaciones reales:

  1. En una aplicación tenemos la tabla ARTICULOS . Hay registros de esta tabla que tienen un histórico también formado por otros artículos. Un ejemplo podría ser el artículo vajilla, formado a su vez por artículos platos llanos, platos hondos
  2. En una sociedad, tenemos una tabla de SOCIOS. Los socios menores de edad dependen de sus tutores a la hora, por ejemplo, de emitir los recibos de cuota social. Hay socios que dependen de otros socios.

Para solventar esta problemática desde la parte izquierda del vDeveloper, podemos acudir a la potencia de los punteros a maestro, de los índices, de los enlaces a histórico y de las actualizaciones.

Analizando el primer caso planteado, artículos formados por otros artículos, tendremos una tabla maestra ARTICULOS.


En dicha tabla hemos incluido, además del capo Nombre, el campo PR-COSTE-CALC, que utilizaremos para mediante actualizaciones acumular el coste del artículo como suma de los costes de sus componentes, el campo PRECIO-COSTES, cuyo contenido inicial es el campo PR-COSTE-CALC por si se quiere modificar el precio de coste y no se quiere usar el calculado, y COMPONENTES que nos servirá para saber el número de componentes que tiene el artículo.

Además incluimos un campo puntero a maestro ARTICULOS–MAESTRO que apunta a la misma tablas de ARTICULOS y que nos servirá para indicar si dicho artículo pertenece a otra ficha de artículo, es decir, si es escandallo de otro artículo pero sin dejar de ser un artículo en sí mismo.

Veamos el campo puntero a maestro ARTICULOS-MAESTRO.


  • Está enlazado a la tabla maestra ARTICULOS y no tiene contenido inicial.
  • Este es el campo que nos indica si un artículo forma parte del escandallo de otro artículo.

Ahora creamos el índice que nos permitirá ordenar dentro de una ficha de artículo, sus componentes.


Este índice lo llamamos Componentes de, y está formado por los campos ARTICULOS-MAESTRO, que es el puntero a la misma tabla, y su campo CODIGO, para que los ordene, dentro de un mismo ARTICULO por su orden de inclusión en el histórico.

Sólo nos queda, crear el enlace a histórico desde la misma tabla de ARTICULOS y utilizar el puntero para las actualizaciones.


El primer componente de la actualización aumenta en 1 cada vez que hacemos que un artículo sea componente de otro, el segundo componente nos calcula el PR-COSTE-CALC, para acumular el precio de coste total.



Forma rápida, sencilla y potente, usando sólo elementos de la estructura y sin tener que hacer ni un proceso, de controlar de forma básica un escandallo.

Life is soft!

2 comentarios:

  1. Vaya!!! me ha gustado mucho, lo cual no es de extrañar viniendo de dos reconocidos maestros.

    Enhorabuena por este magnífico trabajo de divulgación.

    Un saludo a los dos.

    Francisco Hoyos.

    ResponderEliminar
  2. Muy bueno, si señor, agradecemos sigas en ésta linea.

    ResponderEliminar