FileMaker - Conservar datos

   
Vista:

Conservar datos

Publicado por Javier González (19 intervenciones) el 15/09/2008 09:06:48
Hola a todos,

Hace unas semanas dejé una consulta que me trae loco, y quisiera volver a dejarla porque realmente necesito una solución y no se me ocurre. La consulta fue la siguiente:

"Tengo una base de datos donde se relaciona el equipo de trabajo con los trabajadores que lo llevan; cada trabajador tiene asignados varios elementos (que conforman su equipo), y cada elemento tiene un montón de características.

Cada vez que un trabajador cambia el equipo o se va de la empresa, procedemos a cambiar el código del trabajador (ID del trabajador) en los elementos de su equipo, sustituyéndolo por el código de un trabajador nuevo, o por el código del almacén, caso que se queden almacenados. De esta forma todo o parte del equipo queda ahora asignado a otra persona.

Mi problema radica en que cada vez que realizo un cambio en el equipo, de un trabajador a otro, pierdo la información siguiente: por cuántos trabajadores ha pasado cada elemento de los equipos. Me gustaría poder confeccionar un informe donde aparezca un histórico de todos los trabajadores que han tenido un determinado arnés, o un determinado casco, pero cada vez que cambio de trabajador, es como si éste fuera el primero en usar el elemento.

Creo que a través de las Actualizaciones se debe conseguir lo que necesito, pero puesto que realizamos varios cambios para cada elemento, no sé cómo diseñar la forma de que se queden todos almacenados y poder confeccionar el informe de uso de cada elemento."

Gracias por adelantado por vuestra ayuda,

Javier
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jesus Sanchez

RE:Conservar datos

Publicado por Jesus Sanchez (380 intervenciones) el 15/09/2008 11:56:25
Bueno, vamos a ver si te lo arreglo...

Por lo que leo, el problema parece ser que TODAS las relaciones las tienes basadas en el campo ID_Trabajador, por lo que al cambiar este ID pierdes todo el historial (todas las relaciones). Tu mismo dices cual es el fallo de estructura que tienes "procedemos a cambiar el código del trabajador (ID del trabajador)". Eso nunca se debe hacer, el ID puro siempre debe ser el mismo, es un numero interno que ni se ve ni se puede cambiar, a traves de ese campo se deben establecer las relaciones con ese registro. En el case de que quieras cambiarlo de equipo, o darlo de baja o lo que necesites deberias crearte unos pseudo-ID que puedas cambiar a tu antojo.

Por ejemplo, ID_Equipo para asignarlo a un equipo de trabajo, ID_Almacen para dejarlo almacenado, ID_Elemento, etc... de forma que cuando quieras cambiarlo de equipo cambias el ID_Equipo pero NO el ID_Trabajador por lo que las relaciones de historico, al estar basadas en ID_Trabajador, siempre te proporcionara toda la informacion de cada uno.

Reestructura los campos y las relaciones y veras como tienes mucha mas estabilidad en la base.

Cualquier duda ya sabes donde consultar.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Conservar datos

Publicado por Javier González (19 intervenciones) el 16/09/2008 20:43:10
Hola,

Ante todo, gracias de nuevo por la ayuda y la paciencia.

He estado bicheando las instrucciones y tu mensaje para aplicar lo que dices, pero no me sale; es que ni me acerco. Así que reinicio por si me equivoqué al definir el problema.

El campo coincidente entre la tabla EQUIPO y TRABAJADOR es el ID_Trabajador. En la tabla TRABAJADOR este campo es automático; en la tabla EQUIPO es un simple campo de texto. De esta forma, al rellenar ese campo en un registro de la tabla EQUIPO, aparecen en ese registro los datos del trabajador al que se le asigna (registros relacionados).
Si cambio el equipo de un trabajador a otro, he de cambiar el campo ID_Trabajador, en la Tabla EQUIPO, correspondiente a los equipos que pasan de uno a otro. Al cambiar ese ID, cambia el trabajador y ya tenemos el problema inicial.

Si creo nuevos campos coincidentes, la relación es más estricta, pues han de coincidir los dos para que aparezcan los datos relacionados.

Creo que el problema es que yo relaciono un registro de una tabla (Trabajador) con varios registros de otra tabla (Equipo), cuando debería relacionarlo con TODOS los registros de la otra tabla. De esta forma, si cambio el nuevo campo coincidente ID_Equipo ó el ID_Almacén, se cambian los datos relacionados y no la relación.

Supongo que llegas a la misma conclusión que yo; mis conocimientos son muy básicos y no sé aplicar la soución que me das. ¿Es posible que me la puedas aclarar más?

Gracias por todo,

Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jesus Sanchez

RE:Conservar datos

Publicado por Jesus Sanchez (380 intervenciones) el 17/09/2008 11:38:25
Ahora entiendo lo que quieres, que aunque cambies un trabajador de un equipo a otro, tengas un historial de todos los equipos a los que ha pertenecido. Correcto??

Para eso necesitas otra tabla HISTORICO donde generes los registros mediante guiones, por ejemplo:

Asignas un trabajador a un equipo, seleccionas el equipo en la ficha del trabajador y al lado tienes un boton que pone Validar, este boton lo que hace es crear un registro en el historico que contenga, el ID_Trabajador, el ID_Equipo, la fecha, etc... esto se relaciona con el trabajador por el ID_Trabajador, de esta forma, aunque cambies de equipo el historico permnece independiente con la informacion real.

Esta misma operacion la debes aplicar cuando cambies de equipo, cuando pase a almacen, etc... que cada boton de validar genere su propio registro en la tabla historico.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Conservar datos

Publicado por Javier González (19 intervenciones) el 18/09/2008 08:51:54
Gracias por seguir dedicándome tu tiempo.

Si no entiendo mal, te refieres a una relación de actualización entre la Tabla HISTORICO y las otras dos (EQUIPO y TRABAJADOR) actualizados, no?, de forma que la relación creada entre el ID_Trabajador y el equipo que éste lleve no se modifique cuando se cambie el equipo de un ID_Trabajador a otro.

Bueno, voy a probar; gracias de nuevo por vuestra ayuda.

Un saludo,

Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Conservar datos

Publicado por Javier González (19 intervenciones) el 06/10/2008 20:18:53
Hola Jesús,

Te respondo de nuevo a tu consejo para crear un historial de trabajadores a los que ha pertenecido unos equipos determinados.

Proponías crear un guión que crease, a su vez, un registro en una nueva tabla, HISTORICO, relacionada con los trabajadores y sus equpos por el campo ID_Trabajador.

He creado esa tabla y el guión, y tengo una duda en la configuración. Puedo crear un nuevo registro en esta tabla desde la tabla Trabajador, pero no sé cómo hacer para que, al crearse, se relacione ya con el trabajador, desde cuya tabla estoy creando este nuevo registro.

Gracias de nuevo,

Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar