Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: lilyei en 17 Octubre 2019, 18:38 pm



Título: relacion de uno a muchos (sql)
Publicado por: lilyei en 17 Octubre 2019, 18:38 pm
Que tal saludos¡¡¡
tengo el siguiente conflicto en un sistema que estoy manejando en este caso, tengo lo siguiente son dos tablas una que es la de Piezas y otra que es la de procesos
Tabla pieza
 idpieza. este es la llave primaria y autoincrementable
Nombre_plano. este es un varchar de (50)
Orden_de_trabajo. este igual varchar (50)
tipo trabajo. varchar (50)
material. varchar
fecha_refgistro. datetime
N_proyecto varchar
total_pieza int
total_proceso int
estado bit default 1
Tiempo_pieza int
fecha termino datetime

Tabla procesos
idprocesos llave primaria
nombre varchar(50)
nombre_plano varchar (50)
estado bit default 1
fecha_registro dateime


Me disculpo por la redacción aun no se usar del todo las opciones de escritura del foro  :-(
Lo que pasa es lo siguiente me gustaría que mi fecha de registro de la tabla pieza cuando cambie este cambie igual en el procesos pero solo basándose en el nombre del plano  pondré un ejemplo
tengo este plano que se llama BMW y este lleva 4 procesos en este caso como nosotros lo identificamos es por el nombre del plano y estos fueron registrados el 17-10-19 11:30:00 las piezas y los procesos son idénticos en el nombre del plano
bueno sucede que me avisan ¡¡oye necesito que cambies esto a las 3:00:00 pm¡¡¡
y pues tendría que hacer el cambio en pieza y en procesos de las fechas de registros identificándolas con el nombre del plano, dado que este pues no están unidos y esto afecta en el tiempo y hace mas lento mi trabajo
Aun me disculpo por la redacción si alguien puede ayudarme se lo agradeceria ya busque ejemplos pero nada que maneje fechas o algo asi como les explico gracias por su ayuda


Título: Re: relacion de uno a muchos (sql)
Publicado por: MinusFour en 17 Octubre 2019, 18:59 pm
Puedes crear otra tabla ("fecha_de_registros_de_planos" o lo que sea), que tenga un ID y la fecha de registro. En las tablas de procesos y piezas en lugar de usar datetime usas int y ahí apuntas a las IDs de las fechas de registros.

Así cuando haces un cambio sobre alguna entrada de la nueva tabla, las otras tablas pueden hacer referencia al nuevo valor.


Título: Re: relacion de uno a muchos (sql)
Publicado por: lilyei en 17 Octubre 2019, 19:15 pm
Puedes crear otra tabla ("fecha_de_registros_de_planos" o lo que sea), que tenga un ID y la fecha de registro. En las tablas de procesos y piezas en lugar de usar datetime usas int y ahí apuntas a las IDs de las fechas de registros.

Así cuando haces un cambio sobre alguna entrada de la nueva tabla, las otras tablas pueden hacer referencia al nuevo valor.
No te entendí si fueras amable de darme un ejemplo te lo agradecería  ;)


Título: Re: relacion de uno a muchos (sql)
Publicado por: MinusFour en 17 Octubre 2019, 20:17 pm
No te entendí si fueras amable de darme un ejemplo te lo agradecería  ;)

Sería más fácil si nos dijeras que fue lo que no entendiste. Tu tienes tablas en la que guardas fechas tal cual. Si en lugar de guardar la fecha, guardas un indicador a un registro en otra tabla que contiene la fecha y usas ese mismo indicador en diferentes registros en diferentes tablas, cualquier cambio que hagas sobre la tabla que si contiene la fecha se debería ver reflejado en todas las otras tablas que usen los indicadores al registro que tiene la fecha.

Por ejemplo, en lugar de guardar la fecha "17 de Octubre del 2019" en las tablas de procesos y piezas, guardarías "1". De tal forma que puedes tener varios registros en las tablas que usen "1" como la fecha. En otra tabla, vas a tener una entrada como:

IdFecha
1    17 de Octubre del 2019

Entonces, alguien lee la entrada que tu plano se llama "BMW", ven que dice "1" y la van a buscar a la tabla de fechas para obtener la fecha real.


Título: Re: relacion de uno a muchos (sql)
Publicado por: EdePC en 18 Octubre 2019, 13:49 pm
Saludos,

- Si una o más tablas dependen de otra sería mejor tener la Fecha en solo una tabla, en este caso Pieza. Si las fechas van a ser iguales y las tablas están relacionadas, no hay porqué repetir dichas fechas en estas las tablas.

- Para obtener la Fecha a partir de cualquier tabla relacionada basta con usar la relación.