MySQL - relaciones entre tablas, operaciones entre celdas y phpmyadmin

 
Vista:

relaciones entre tablas, operaciones entre celdas y phpmyadmin

Publicado por Jtorregrosa (2 intervenciones) el 13/12/2013 22:46:11
Buenas Noches:

Os escribo para ver si me podeis echar una manita! ante todo... gracias por las contestaciones.

Soy un auténtico principiante y autodidacta que está haciéndose una página en PHP porque necesito introducir una gran cantidad de datos que se almacenan en las bases de datos MYSQL de clientes sobre una valoraciones y resultados de unos test.

El caso es que he creado una tabla para cada test y he echo una Foreign Key en todas las tablas con el mismo nombre y las he relacionado en el phpmyadmin.

Supongamos que en la primera tabla "datos_registro"que es sobre los datos de como se registrará a la persona en la empresa he creado un campo llamado "numero_registro" con un formato predeterminado A0036, varchar(8) . En las siguientes tablas he creado lo mismo y las he convertido en foreign keys y después las he relacionado. De ahi todo correcto. Es decir todas las tablas estan relacionadas por el campo "numero_registro".

Ahora mi pregunta es... todos los registros estarán en una pagina que se tendrán que rellenar... pero lo que quiero por ejemplo es que si creo un registro nuevo en la tabla "datos_registro" que es la principal , se me cree una linea de registro en el resto de tablas donde automaticamente aparezca en el campo "numero_registro" de esas tablas, el valor que he introducido en la tabla "datos_registro" en el mismo campo.

Es eso posible? o hay que hacerlo por código en la página web¿? o haciendo consultas donde al dar enter al ultimo campo antes del siguiente me copie el campo de uno a otro?

Por otro lado me gustaría como hace operaciones entre celdas, es decir... solo se pueden hacer bajo consultas? no hay ninguna forma tipo "excel" donde al meter datos en dos celdas se haga la media con una formula entre celdas?

Muchas gracias de antemano

Saludos

Juan
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 xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

relaciones entre tablas, operaciones entre celdas y phpmyadmin

Publicado por xve (1151 intervenciones) el 14/12/2013 08:03:58
Hola Juan, para hacer lo que quieres, creo que la mejor opción es utilizar un trigger que se ejecute cuando se añada un nuevo registro en la tabla "datos_registro", y que se encargue de añadir el registro en el resto de tablas.
http://dev.mysql.com/doc/refman/5.0/es/triggers.html

Yo los he utilizado, y realmente son bastante sencillos de utilizar y muy practicos:

Mira este ejemplo:
1
2
3
4
5
6
CREATE TRIGGER TriggerNombre AFTER INSERT ON NombreDeLatabla
    FOR EACH ROW
    INSERT INTO miOtraTabla
        (`campo1`, `campo2`, `campo3`, ...)
        VALUES
        (NEW.campo1, NEW.campo2, 'texto')

Cada vez que añadas un registro a la tabla NombreDeLatabla, se añadira un registro en la tabla miOtraTabla añadiendo tres valores que son el campo1 y campo2 de la tabla NombreDeLatabla y el tercer valor un campo de texto.

Espero que te sirva... coméntanos, ok?
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

relaciones entre tablas, operaciones entre celdas y phpmyadmin

Publicado por Jtorregrosa (2 intervenciones) el 14/12/2013 08:50:53
Hola!

Gracias por contestar, mi pregunta es, si quiero insertar en varias tablas a la vez, pondría varios inserts seguidos?

Tengo unas dudas en el código. Si quiero que se copie el mismo contenido que pongo en el campo de la primera tabla a las demás tablas mediante el trigger, que debería de poner?

CREATE TRIGGER numero_registro AFTER INSERT ON datos_registro
FOR EACH ROW
INSERT INTO datos_filiacion (`numero_registro`)
VALUES (NEW.campo1, NEW.campo2, 'texto') <<<<<-------- aqui es lo que no sabría que poner

Para que se entienda mejor os explico un poco más y a lo mejor me dais una solución más facil para hacer las tablas y no tener que relacionar tantas. Lo que busco es crear una base de datos clínica.

He hecho una tabla para cada test y una tabla para cada tipo de dato es decir: datos_registro (el que uso para darle un numero interno a cada paciente), "datos_filiacion", "datos_antropometricos" y luego una tabla para cada test donde van los resultados.

El caso es que lo he pensado así porque si lo juntara todo en una misma tabla el total de columnas sería de 79 y para luego extraer datos me parecía más sencillo hacerlo cada grupo de datos en una tabla diferente... y relacionarlas pero claro eso me complica la cosa bastante (dado que es mi primer proyecto sql).

La idea que llevo es crear una página php para cada tabla donde se encuentren solo los registros de esa tabla en concreto. Empieces por la primera "datos_registro" le vayas dando a un boton tipo "adelante" y te salga la siguiente pagina de registro de la siguiente tabla, pero claro ahora lo que necesitaria es que al aparecer la siguiente tabla ya me aparezca automáticamente el mismo valor del campo "numero_registro" que puse en la tabla "datos_registro" y que al introducir los datos de esa tabla se posicione todo en la misma línea que corresponda a ese mismo número de "numero_registro".

Es un poco lioso la verdad... creeis que es mejor hacerlo todo en una misma tabla?

Por otro lado, hay alguna manera donde crear un número autoincrementado personalizado? por ejemplo.... quiero que cada registro tenga una clave principal "número de registro" con el formato A0036XX donde me gustaría que automaticamente se incrementara... es decir A003601 para el primer registro.... al darle un nuevo registro ya aparezca A003602... , al darle nuevo registro aparezca ya el A003603... y asi sucesivamente.... es eso posible?

Muchas gracias de antemano!!
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