Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Una orientacion para Aplicacion MySQL (https://www.clubdelphi.com/foros/showthread.php?t=44823)

karlaoax 15-06-2007 15:46:22

Una orientacion para Aplicacion MySQL
 
Hola a todos, tengo una duda de como crear una aplicacion en MySQL. Les explico:

Quiero hacer un ejemplo de un consultorio medico, pero mi problema que tengo es que si un paciente lo guardo en mi Tabla, por medio de un RFC (Aqui en Mexico es como una identificacion), y este paciente me visita hoy 15 Junio 2007, pero luego me vuelve a visitar el 17, el 21, el 25, etc. .....

Que me sugieren para hacer procedimiento,
1.- Es recomendable estar creando tablas independientes para cada vez que me visita mi paciente? (aunque no me gusta esta opcion)

2.- Ademas, si la trato de guardar en mi misma tabla, ya saben que no se pueden agregar mas Registros iguales (en mi caso el RFC es mi clave primaria) y marcaria Key Violation :(

Desde ya gracias por la orientacion posible.
Karla :p

Caro 15-06-2007 16:13:38

Hola karlaoax, yo creo que deberias tener 2 tablas una de pacientes y otra de visitas, en pacientes estarian todos los datos generales de tu paciente y en visitas todas las visitas que realiza el paciente al consultorio

PACIENTES(RFC, NOMBRE,....)
VISITAS(FECHA_VISITA,......,RFC)

y estarian relacionados con tu campo RFC

Saludos

karlaoax 15-06-2007 16:51:42

Cita:

Empezado por Caro
Hola karlaoax, yo creo que deberias tener 2 tablas una de pacientes y otra de visitas, en pacientes estarian todos los datos generales de tu paciente y en visitas todas las visitas que realiza el paciente al consultorio

PACIENTES(RFC, NOMBRE,....)
VISITAS(FECHA_VISITA,......,RFC)

y estarian relacionados con tu campo RFC

Ok gracias, pero recuerda que si hago esta opcion en mi tabla VISITAS tendria mi RFC como clave primaria, el problema es que si me visita el 15 Junio, lo guarda bien, pero si me visita el 17, como ya se almaceno su RFC en la tabla, mi pregunta es, como guardar, En fechas diferentes para un mismo registro :confused:

Si hago la opcion que me dijiste me marcaria Key Violation, porque ya existe un registro con el mismo RFC,,,,,,,,,,,,, Gracias

Caro 15-06-2007 17:02:53

No tendrias ese problema porque solo en tu tabla de Pacientes tu campo RFC seria tu llave primaria pero en tu tabla Visitas tu RFC seria una llave foranea que significa que se puede repetir, la relación entre estas tablas seria de de 1 a muchos.

karlaoax 15-06-2007 17:22:27

Ok gracias CARO por la orientacion :p voy a hacer una prueba para ver como queda.

Los voy a unir por medio de SQL al momento de hacer las consultasy presentar en pantalla los resultados. :)
Karla

roman 15-06-2007 17:30:17

Yo te recomiendo que no uses el RFC como llave primaria. En general, no deberían usarse campos que tengan un significado práctico como llaves primarias. Si por error registras un paciente con un RFC incorrecto, tendrás que liarte con la corrección en todas las tablas que usen ese RFC como llave foránea. Siguiendo lo delineado por Caro, yo usaría esta estructura:

Código:

+---------------------------------+
|          pacientes            |
+----+-----+--------+-------------+
| id | rfc | nombre | otros datos |
+----+-----+--------+-------------+
|    |    |        |            |
| pk |  uk |        |            |
|    |    |        |            |
|    |    |        |            |
+----+-----+--------+-------------+

+--------------------------+
|          visitas        |
+----+-------------+-------+
| id | paciente_id | fecha |
+----+-------------+-------+
|    |            |      |
| pk |      fk    |      |
|    |            |      |
|    |            |      |
|    |            |      |
|    |            |      |
|    |            |      |
|    |            |      |
|    |            |      |
+----+-------------+-------+

pk = llave primaria, uk = llave única, fk = llave foránea.

La llave primaria, sería un autoincremental.

// Saludos

karlaoax 15-06-2007 17:44:09

Buen punto Roman, gracias, Ambas recomendaciones me serviran mucho para la creacion de este ejemplo.

Asi cuando guarde varios ID con sus respectivos RFC en mi tabla visitas, no me saldra el mensaje KeyViolation, y podre consultar sus fechas de visita cuantas veces sea necesario.

Gracias a ambos por sus sugerencias.

Karla :D

roman 15-06-2007 17:49:18

Cita:

Empezado por karlaoax
Asi cuando guarde varios ID con sus respectivos RFC en mi tabla visitas

Noooo. El RFC no se guarda en la tabla de visitas, sólo en la de pacientes. De lo contrario obtienes el mismo problema: un error en el rfc de un paciente te obliga a corregir todas las vistas de ese paciente. El RFC así como el nombre y demás datos de un paciente los obtienes al enlazar ambas tablas:

Código SQL [-]
select pacientes.rfc, pacientes.nombre, visitas.fecha
from visitas
left join pacientes on pacientes.id = visitas.paciente_id
...

// Saludos

karlaoax 15-06-2007 18:03:51

sorry es que lo escibi mal, pero si, eso lo que voy a hacer je je je

gracias Roman :p


La franja horaria es GMT +2. Ahora son las 00:50:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi