Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Muchos a muchos?

Estas en el tema de Muchos a muchos? en el foro de Bases de Datos General en Foros del Web. Tengo una pregunta que seguramente es de un tema base, pero que yo no se resolver (aficionado Base de datos de salarios: tblEmpleados tblProyectos tblDistribución ...
  #1 (permalink)  
Antiguo 26/05/2005, 13:31
 
Fecha de Ingreso: diciembre-2002
Ubicación: Roma
Mensajes: 60
Antigüedad: 21 años, 11 meses
Puntos: 0
Pregunta Muchos a muchos?

Tengo una pregunta que seguramente es de un tema base, pero que yo no se resolver (aficionado

Base de datos de salarios:

tblEmpleados
tblProyectos
tblDistribución
tblCargasSociales... y otras más

tblDistribución contiene la información para distribuir el salario de una persona en diferentes proyectos (relación entre tblEmpleados y tblProyectos). tblDistribución es el resultado de una relación "muchos a muchos" pues muchos proyectos pueden tener muchos empleados y viceversa.

Necesito hacer que una tabla que registre la nómina de pago, tomando información de tblDistribución, tblEmpleados y tblCargasSociales.

El problema que tengo es que necesito que la información quede registrada según el cálculo. La información en tblDistribució y tblCargasSociales puede cambiar con el tiempo (ejemplo, pueden haber nuevos proyectos o las cargas sociales pueden aumentar o disminuir) yo necesito que las nóminas de pago no cambien. Así por ejemplo, los nuevos registros serán calculados con las nuevas cargas sociales, pero los del mes pasado se mantienen como cuando fueron calculados.

He tratado de resumir el problema y dar sólo los detalles que considero importantes.

Gracias por la ayuda.
  #2 (permalink)  
Antiguo 27/05/2005, 01:09
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 3 meses
Puntos: 2
Buenos días.
Tu problema no viene derivado de la relación muchos a muchos, sino como hacer para que siempre que calcules o quieras conocer la nómina de un empleado te de siempre el mismo resultado. En este caso tienes dos opciones: guardar los datos de cálculo en tablas aparte, es decir, dejar todo calculado y simplemente mostrarlo, o puedes dejar los datos de cálculo con fechas de inicio - final, de manera que tú siempre calculas los datos a una fecha.
La opción 2 es más elaborada, pero en el caso de tener que hacer correcciones no tienes que modificar nada más, sólo añadir los datos para el cálculo.
La primera opción es más rápida para las consultas posteriores, pero si tienes que hacer correcciones, tienes que realizar de nuevo el cálculo para que se guarden de nuevo los datos.
Tal y como funciona un sistema de nóminas, la mejor opción a mi entender es la segunda.
Espero que te ayude.
Un saludo.
__________________
Estoy contagiado de Generación-I
  #3 (permalink)  
Antiguo 27/05/2005, 09:34
 
Fecha de Ingreso: diciembre-2002
Ubicación: Roma
Mensajes: 60
Antigüedad: 21 años, 11 meses
Puntos: 0
Gracias Vice,

Había ya pensando en la segunda opción que creo que sería la más limpia, pero quería explorar otra posibilidad porque en realidad una vez hecho el cálculo no sería necesario cambiar nada. Al limite, sería necesario hacer una deducción o pago adicional en la próxima nómina.

Sobre la opción 2, ¿Cómo hago para hacer la tabla con el cálculo? Imagino que haría un query que cree una tabla (create-table query). ¿No?

Gracias
  #4 (permalink)  
Antiguo 27/05/2005, 10:29
 
Fecha de Ingreso: abril-2005
Ubicación: vivo donde puedo
Mensajes: 133
Antigüedad: 19 años, 7 meses
Puntos: 0
no te entiendo muy bien

la verdad es que no te entiendo muy bien pero me da la impresión de que lo único que tendrías que hacer es ampliar la tabla distribucion, que es una tabla puente entre proyectos y empleados, con los campos necesarios para hacer los cargos de las horas de trabajos o los servicios prestados y otro campo para las cargas sociales. si este campo, el de las cargas sociales no tiene correspondencia con los cargos de las horas de trabajo no tiene importancia, lo puedes dejar en blanco y puedes hacer un cargo al mes.
lo más complejo es diseñar una página o un formulario para agregar registros a una tabla puente. en mi blog hay ejemplos.
__________________
Visita mi página web.Carlos Zapata Company
Visita mi blog.
Únete a mi lista de correo.
--------------------------------------------------
La identidad no es lo que fuimos, ni lo que creemos que somos; la identidad es cómo miramos la mundo.

José Luis Rodríguez Zapatero, actual presidente del Gobierno español.
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 14:36.