¿Maestra o submaestra?

¿En qué casos usar una tabla Maestra Normal de Clave Numérica y cuando una Submaestra?.

Esta es una pregunta que nos solemos plantear varias veces a lo largo de nuestras experiencias como desarrolladores con Velneo.

No es fácil responder pues el tiempo nos acaba dando la facilidad de elegir una u otra según vamos acumulando horas de programación.

Creo que unas ideas aclaratorias nos pueden ayudar un poco .

Las diferencias entre una y otra estriban en su índice Código.

Mientras que las Maestras tienen un código «simple», por decirlo de alguna manera, sólo formado por un número, en la mayor parte de los casos, el índice Código de una submaestra es compuesto. La tabla submaestra es una maestra en sí misma con la particularidad de que necesita una tabla por encima de ella que la complete, que la «acabe» de definir.

Supongamos el caso tan manido de la estructura Pais- Provincia-Población.

Cada una de estas tablas podría ser perfectemente tablas Maestras Normales, cada uno de sus registros se diferencia inequívocamente de los demás en su campo e índice código.

¿Por qué entonces optamos por que la tabla Pais sea Maestra Normal y que Provincias sea submaestra de Paises y no una MN ? Porque para que una Provincia se «complete» de forma total, hemos de decirle a qué País pertenece, su código ha de estar » compuesto » por el código del Pais al que pertenece más su código propio. Lo mismo con la Población, para completarla tenemos que indicar a qué Provincia pertenece y ésta a su vez, a qué País.

De hecho, si editamos el campo código de varios registros de una tabla submaestra. podemos pensar que están mal ya que encontraremos números repetidos. Esto es así por la «concatenación», tendremos códigos que internamente serán de la forma

1.1    1.2     1.3     2.1   2.2     Indicando la primera parte a qué ficha de la tabla maestra apunta y la segunda qué código ocupa en ese puntero. El último dígito es que veremos si editamos en un formulario o en una rejilla el campo código.

1.10 indicaría que es la décima ficha que tiene por maestra la de código 1 en la tabla maestra

Cuantos más niveles de submaestras tengamos, la concatenación de este índice Código será mayor, teniendo tantos «niveles» como tablas Maestra-Submaestra tengamos. En el caso Pais-Provincia-Población, el íncice código de una Población estará formado por el puntero a País, el puntero a Provincia y el código propio de la Población.

Este «siguiente al último»  tan especial, que depende de la maestra apuntada nos puede venir bien a la hora de hacer ciertas cosas, como por ejemplo, que las facturas comiencen a contarse de nuevo desde uno al comenzar el año. Si creamos una tabla maestra AÑOS y la tabla CFacturas como submaestra de Años, podemos usar el campo código de Cfacturas como sencillo contador que se iniciará en 1 en cada año. Para ello podemos hacer lo siguiente:

1. La tabla AÑOS sólo tiene el campo códigoy su índice correspondiente.

2 .Con un  proceso de inicio de la aplicación, comprobamos si la tabla años está vacía, y en ese caso generamos años del 2000 al 3000 con un for, haciendo que el año se guarde en el campo código

3. El contenido inicial del puntero a Año será fAño(%FECHAFACTURA% ) con lo que forzamos que apunte al maestro AÑO que conicide con el Año de la fecha de la factura, y así hacemos que el campo Código de CFacturas cuente las facturas dentro de un año de forma correlativa y empezando por 1.

Consideraciones a la hora de trabajar con las submaestras.

Tener siempre muy en cuenta el orden en el que se forma su índice Código. Si no fuera así, podríamos tener problemas a la hora por ejemplo, de dar altas directas o con los capilares de tubos. Las modificaciones de campos  en los pre de las altas directas o en los de salida de los tubos de ficha se han de hacer siguiedo el orden del índice código. En el ejemplo de la  CFactura, si tengo que dar un alta directa, primero doy de alta el Año y luego el código propio de la factura, lo mismo para el orden de los capilares.

Estructuras típicas de Maestra- Submaestra

Toda aquella estructura que esté formada por una cabecera y sus lineas : facturas, presupuestos, albaranes, pedidos…pues su índice compuesto, nos evitará crear campos contadores en las lineas para que lleven un orden dentro del histórico de cada cabecera.

Probad, mirad y si no os gusta como funcionan, recordad que siempre podreis diseñar con Velneo sólo usando tablas Maestras,pero recordad que si teneis tipos particulares de tablas, serán porque tienen su utilidad. Sólo hay que saber buscarla y explotarla.

Acerca de Agustin
Velneoadicto. Tuve la grandísisma suerte de que me enseñaran los más grandes: Juan Muñoz-Cobos , Jesús Arboleya y Jesús Inclán..

2 Responses to ¿Maestra o submaestra?

  1. Pingback: ¿Tubos?…¿y eso qué es? (y iii) « Velneo: panta rei. Desde mi perspectiva

  2. Pingback: Velneando :: Para no programadores «

Deja un comentario