Histórico doble -> Cabeceras y Líneas

vForum público de la plataforma de desarrollo Velneo

Moderador: vCoaches

Responder
Avatar de Usuario
ebarbeito
vAdviser
vAdviser
Mensajes: 692
Registrado: 29 Mar 2006, 16:37

Histórico doble -> Cabeceras y Líneas

Mensaje por ebarbeito »

Hola a todos/as

Hace poco que empecé con Velázquez Visual, leyendo todavía el manual de programación. En el tomo II enseñan los diferentes tipos de tablas y me surge una duda a la hora de definir relaciones "Cabecera-Línea" utilizando una tabla histórica para las líneas.

En el líbro ponen un ejemplo típico con tres tablas maestras: ARTICULOS, CLIENTES y FACTURAS y una tabla histórica "Lineas de Facturas".

Una tabla histórica no tiene campo código que identifique a cada uno de sus registros. Las veo útiles para representar relaciones "muchos-a-muchos" (en el Modelo Relacional) que forman entidades (tablas) de por sí. [ejemplo: ARTICULOS, ALMACENES. Un artículo puede existir en más de un almacén y viceversa, un almacén puede tener más de un artículos. Se crea pues una entidad "existencias"). Por lo que si una tabla histórica no tiene campo Código que la identifique, en el ejemplo de las "Líneas de factura" ¿cómo podrá entonces identificarse cada línea de cada factura?

Para la tabla "Líneas de factura" veo más lógico utilizar una tabla submaestra pues éstas tienen su campo Código y requieren de otro campo código para identificar a cada uno de sus registros. Un ejemplo gráfico:

Código: Seleccionar todo

FACTURAS          LINEAS FACTURA
--------          --------------
 1                 1
 1                 2
 1                 3
 2                 1
 2                 2
 3                 1
 4                 1
Empleando una tabla submaestra para representar "líneas de factura" no hay problema, queda recogido que tiene su propia "clave primaria" pero necesita la "clave primaria" de la tabla facturas para identificarse. Con tablas históricas esto no es así, con lo que no veo correcto emplear este tipo de tablas.

Por eso escribo, para ver si alguien puede aclararme el por qué de usar una histórica en este caso (seguro que se me está escapando algo jeje),

Gracias de antemano y un saludo
#!/Enrique/Barbeito/García ...
http://enrique.barbeito.org

¡Apúntate al grupo Velneo en Last.fm! [+info]
AdolfoMont
vMate
vMate
Mensajes: 89
Registrado: 17 Nov 2005, 16:58

Mensaje por AdolfoMont »

No le de mas vueltas. Lo tienes muy claro y estas en lo cierto. EL ejemplo aunque valido es desafortunado.

La clave de cuando utilizar una tabla historica es preguntarse:
¿Estas seguro de que no va a colgar nada de ella?
¿No va a haber ninguna otra tabla que apunte con un puntero a maestro a esta tabla?

Si es asi no hay problema en utilizar el tipo historico, pero solo vas a ganar una cosa, optimizas la no utilizacion del campo codigo, el espacio de este y el de su indice. Por tanto ante la duda, siempre maestra o submaestra.

De hecho hasta para las tablas auxiliares en los enlaces muchos a muchos, puede definir una maestra y listo, no pasa nada, lo contrario te puede dar problemas en el futuros si tu analisis no fue del todo acertado.

Este tipo de tablas (Historicas) se usan por ejemplo para llevar el stock de un almacen , por articulo, meses y fechas, ya que si apuntas desde la linea de compras o facturas utilizas un enlace indirecto, no un enlace a maestro. EL motivo es que el primero te crea las altas de registros que necesites automaticamente desde las actualizaciones. Pero repito si es maestra, tamnbien puedes utilizar este enlace (Indirecto), luego nunca estas limitado. Si la defines historica, nunca podras hacer un enlace a maestro sobre ella.
Avatar de Usuario
Cuco
vLeader
vLeader
Mensajes: 1179
Registrado: 20 Sep 2005, 20:45

Mensaje por Cuco »

Yo creo que en VV el concepto "histórico / a" está sobrecargado:

Por un lado, significa la parte plural de la relación uno a varios (varios, que no muchos, pues 2, 3 ó 4 no son muchos si no son hijos) de dos tablas relacionadas. Es un concepto relativo, pues si tenemos más de dos tablas, una puede ser histórica de otra pero maestra de aquella. Lo mismo se puede decir para el concepto "maestro / a".

Por otro lado, es el nombre que en VV se le da a las tablas sin código y que en los albores de la herramienta se proponían como históricas de otras, ya que estas tablas no pueden usarse como maestras de nada porque les falta el código que identifique biunívocamente cada registro o fila. No sé para que valdría, pero podría existir una tabla sin código que no fuera histórica de ninguna otra.

Este nobre de tabla no es muy afortunado porque no responde a ninguna realidad y se cruza con el concepto relativo de histórico entre tablas, aunque ninguna carezca de código. Y esto siempre resulta confuso, sobre todo cuando se comienza.

Yo propondría su sustitución progresiva por el de "tablas sin código", que, además, valen para lo que valen y la tendencia es a usarlas lo menos posible.

Lo que sí es afortunado es el concepto relativo maestro-historico, es muy gráfico y nos evita estár constantemente hablando de tablas relacionadas "uno a varios" o "varios a uno" con lo que llega un momento en que te acabas metiendo en un jardín conceptual de una frondosidad majestuosa.

Espero haber aclarado algo los conceptos y que con esta disgresión no se lo ponga más confuso aun a los principiantes.

Juan Figueroa Dorrego
杜鹃鸟
Juan Miguel Figueroa Dorrego

Fontanía Lógica ™, E.P.I.
Una empresa personal imaginaria
Posición:
43.532928,-5.628616
Avatar de Usuario
ebarbeito
vAdviser
vAdviser
Mensajes: 692
Registrado: 29 Mar 2006, 16:37

Mensaje por ebarbeito »

Muchas gracias por las respuestas y aclaraciones :)
#!/Enrique/Barbeito/García ...
http://enrique.barbeito.org

¡Apúntate al grupo Velneo en Last.fm! [+info]
Avatar de Usuario
victor
vCool
vCool
Mensajes: 146
Registrado: 21 Sep 2005, 18:07

Mensaje por victor »

Recomendo olvidarse de las bd relacionales. Esntonces será más facil comprender el uso de cada tabla en Velneo
Un saludo, Víctor García
victor@guida21.com
www.guida21.com

ESPECIALISTAS EN PLANTILLAS FLOSS
Avatar de Usuario
Agustin
vCoach
vCoach
Mensajes: 2953
Registrado: 21 Sep 2005, 06:17

Mensaje por Agustin »

Estoy de acuerdo con lo que dice Víctor, olvidaros de las bases de datos relacionales ( de uno a muchos, de muchos a muchos, dos con leche, para mí un cortado..) y "pensar " a la manera de Velázquez, "manierismo Velazquiano" podríamos definirlo.
Quizás el nombre dado a las tablas históricas no sea el más adecuado dado que puede llevar a confusión , sobre todo al principio, cuando se empieza a pensar en estructuras de tablas y las distintas relaciones entre ellas, una tabla puede ser "maestra" por definición, pero a su vez histórica en cuanto a su relación con otra u otras.
Una vez salvado el escollo inicial de las nomenclaturas, todo se vé muy sencillo.
Para mí, y volviendo al post inicial de este hilo, la estructura de tabla " histórica doble cabeceras lineas" tiende a desaparecer. Los primeros manuales explicaban su uso para el tema de facturación, aunque bien es cierto que el uso de las maestras y submaestras nos dan más ventajas que esta estructura que considero obsoleta.
Las tablas históricas puras, como yo las llamo, sirven para lo que sirven, enlaces entre maestras, dummys ( término acuñado por Fran, buenos dias crack ) estadísticas varias ... Tienen sus virtudes y sus fallos, y se deben usar a criterio propio, donde uno considere y analice que sean necesarias. La experiencia es la madre de toda la ciencia y con la práctica se acaba visualizando el tipo de tablas que vas a usar para resolver la problemática que te planteas.
Un saludo a todos y perdón por el peñazo, pero me apetecía enrollarme un poco.
SC
Veni, vidi, vinci
Panta rei.
https://cagonmimantu.wordpress.com/
AdolfoMont
vMate
vMate
Mensajes: 89
Registrado: 17 Nov 2005, 16:58

Mensaje por AdolfoMont »

Pues yo no veo mal el nombre de la tabla si se tiene claro los conceptos:

TABLA MAESTRA : Puedes definir asi , las tablas que aun siendo historicas de otras, en alguna son maestra de otras.

TABLA HISTORICA (O Historica Pura): Son aquellas en que en ninguna ocasion son Maestras de otra. Nunca tendran un Enlace a Historico sobre otras tablas. Si es asi te puedes evitar el campo Código.
cabella
vLeader
vLeader
Mensajes: 1013
Registrado: 21 Sep 2005, 16:01

Mensaje por cabella »

victor escribió:Recomendo olvidarse de las bd relacionales. Esntonces será más facil comprender el uso de cada tabla en Velneo
Ahí está el "QUI" de la cuestión. Velazquez Visual es una base de datos R E A L ... una vez cogido ese concepto ... tooood irá mucho mejor.
Avatar de Usuario
Agustin
vCoach
vCoach
Mensajes: 2953
Registrado: 21 Sep 2005, 06:17

Mensaje por Agustin »

No digo que los nombres me parezcan mal, indico que al principio, pueden resultar algo confusos, luego te acostumbras y lo ves todo claro. Es como las estructuras de redes, una es su topología física y otra su topología lógica. Pues lo mismo ocurre con las tablas históricas, pueden ser físicamente históricas ( lo que yo llamo históricas puras, sin campo ni índice código) o lógicamente históricas, porque tengan enlaces a maestras pero que si tienen código ( una maestra puede funcionar como histórica de otra maestra) . Repito , no me parecen mal los nombres, pero volviendo un poco la vista atrás y recordando mi primer curso de Velázquez ( año 96, Gijón, salón de actos de la antigua Rula,Versión 3.0 ) me viene a la memoria la "confusión" inicial con los nombres de las tablas y sus nombres de relación. Un saludo
SC
Veni, vidi, vinci
Panta rei.
https://cagonmimantu.wordpress.com/
Responder