Foros del Web » Programando para Internet » ASP Clásico »

Maestro - Detalle

Estas en el tema de Maestro - Detalle en el foro de ASP Clásico en Foros del Web. Hola amigos foreros, mi problema es que tengo que realizar una página en la cual el usuario tiene que ingresar datos en un maestro-detalle, no ...
  #1 (permalink)  
Antiguo 17/02/2006, 13:18
 
Fecha de Ingreso: julio-2005
Mensajes: 51
Antigüedad: 19 años, 9 meses
Puntos: 1
Maestro - Detalle

Hola amigos foreros, mi problema es que tengo que realizar una página en la cual el usuario tiene que ingresar datos en un maestro-detalle, no se si alguien tiene alguna sugeriencia o solución con este problema.

Gracias! :)
  #2 (permalink)  
Antiguo 17/02/2006, 13:22
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 4 meses
Puntos: 16
perdon pero que es un maestro-detalle?
  #3 (permalink)  
Antiguo 17/02/2006, 13:27
 
Fecha de Ingreso: julio-2005
Mensajes: 51
Antigüedad: 19 años, 9 meses
Puntos: 1
un maestro detalle es cuando tenes que ingresar información la cual "maestro" es como el padre y "detalle" son como los hijos. Por ejemplo cuando se realiza una factura tienes que ingresar los datos del cliente (este sería el maestro) y después tiene que ingresar todos los articulo que el cliente haya comprado (este sería el detalle).
  #4 (permalink)  
Antiguo 17/02/2006, 13:32
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Un ejemplo de maestro-detalle es una factura o un albarán: Tiene una cabecera con datos generales (Numero factura, cliente, total, fecha, etc) y un detalle de todos los productos detalle.

TABLA CAB_FACTURA

idfactura int(11) auto_increment not null promary key,
fecha date null,
numerofact varchar(45) null,
idcliente int(11) not null,
total_factura decimal (11,2) null,
descuento double,
observaciones text null,
key fechas (fecha)


TABLA DETALLE_FACTURA
iddeta int(11) auto_increment not null primary key,
idcab int(11) not null,
idproducto int(11) not null,
precio decimal (11,2) not null,
key cabceras (idcab)


Esto son tablas tipicas maestro-detalle.




Un saludo
  #5 (permalink)  
Antiguo 17/02/2006, 13:37
Avatar de gorka_arai  
Fecha de Ingreso: octubre-2005
Mensajes: 281
Antigüedad: 19 años, 6 meses
Puntos: 1
¿No sería mejor almacenar los datos "maestro" en una BD para que así el usuario elija un cliente (de un combo desplegable por ejemplo) y se rellenen estos datos "maestros" con la selección del usuario? De esta forma sólo habría que meter los datos del "detalle", puesto que al seleccionar del combo un cliente se rellenarían automáticamente los datos de éste...

La manera que tú propones no me parece muy "eficiente", ya que obligas a meter los datos del cliente y además los de sus compras. Pero necesitaría que te explicaras un poco más, a lo mejor no es esto lo que quieres...

Salu2
  #6 (permalink)  
Antiguo 17/02/2006, 13:45
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 3 meses
Puntos: 2
asi es, tienes que tener basicamente 2 tablas

1.- clientes (id, nombre)
2.- compras (id_cliente, producto, cantidad)

podrias tener una tercera llamada productos.
3.- productos (id_producto, nombre_producto)

luego los enlazas por id
__________________
Manual de ASP Avanzado ;-)
  #7 (permalink)  
Antiguo 17/02/2006, 13:46
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
"Así me lo aprendí yo"

Ahora en serio: esta forma es bastante eficiente ya que separas los datos de detalle de cada factura de su factura con lo que las busquedas de facturas de un cliente se hacen mas eficientes. SI necesitas el detalle solo tienes que buscar aquellos registros con el id del maestro, si no, no tienes que recorrer todo el detalle para conocer datos de la factura.

Este sistema funciona desde hace mas de 20 años (con 4GL en Informix ya se trabajaba asi, fijate lo viejo que soy ) y, segun veo, sigue usandose.


Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:46.