Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/11/2008, 06:25
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Creando base de datos

Si tienes en cuenta que el mismo ID es PK en dos tablas distintas, no hay forma que puedas crear un trigger que actualice ninguna de las dos porque no tienes ningun dato en Usuario que determine eso (y no puedes enviarlo como parte del insert porque no pertenece a la tabla), entonces sólo te queda cargar directamente el dato con un INSERT a nivel programático.

En realidad los esquemas de tablas de ese tipo suelen abarcar tres tablas, pero siendo elas: USUARIO, CARGO y ASIGNACION, para el caso de que cada usuario pueda tener varios cargos (relación N:N), o de dos tablas (USUARIO y CARGO) si sólo pueden tener uno (Relación 1:N)

Esto significaría algo así:

Caso 1:

USUARIO(DNI_usuario, Tipo_usuario, Nombre, Apellidos, Pais, CP,
Direccion, Poblacion, Provincia, Email, Fecha_nacimiento, Password)

ASIGNACION(DNI_usuario, ID_Cargo)

CARGO(DNI_ID_CArgo, NombreCargo)
En este caso la consulta debe cruzar las tres tablas para darte qué usuarios son Médicos y cuáles Administrativos. La ventaja es que Tiene más flexibilidad en cuanto a los cargos, pero requiere llenado de la tabla CARGO primero y dos INSERT todas las veces.

Caso 2:

USUARIO(DNI_usuario, Tipo_usuario, Nombre, Apellidos, Pais, CP,
Direccion, Poblacion, Provincia, Email, Fecha_nacimiento, Password, ID_Cargo)

CARGO(ID_CArgo, NombreCargo)

Este caso es más simple: Sólo cruza dos tablas. Pero un usuario sólo puede ser Administrativo o Medico. No ambos. La ventaja es Que sólo debes insertar a los usuarios y el cargo queda en ese momento establecido sin otro INSERT. La tabla CARGO , por su parte, se carga sólo una vez y sufre pocas modificaciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 07/11/2008 a las 09:02