Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ayuda con diseño

Estas en el tema de Ayuda con diseño en el foro de Bases de Datos General en Foros del Web. Hola y buen día a todos, verán me encuentro diseñando un modelo de base de datos pero resulta que ya llevo atorado algo de tiempo, ...
  #1 (permalink)  
Antiguo 21/07/2009, 11:57
 
Fecha de Ingreso: enero-2009
Mensajes: 78
Antigüedad: 15 años, 10 meses
Puntos: 0
Ayuda con diseño

Hola y buen día a todos, verán me encuentro diseñando un modelo de base de datos pero resulta que ya llevo atorado algo de tiempo, el problema es este :

Tengo que diseñar una base de datos para el control del expediente clinico de un hospital, se tienen que registrar el empleado, el dependiente del empleado (madre, esposa,hijos, etc) y el expediente de cada uno.

En cuanto a las tablas de empleado y dependiente, pues las relaciono 1:N, es decir, un empleado puede tener varias personas que dependan de el para el seguro médico (varios hijos o hasta esposas) y hasta ahí no hay problema.

Lo que no se es como relacionar la tabla expediente con empleado y dependiente, al principio pareceria que estas van realcionadas con expediente asi nada mas, pero el problema es que entonces en expediente tendria dos llaves foraneas, una de empleado y la otra de dependiente, entonces cuando realice una alta en la tabla de expediente, no podre saber a quien se refiere y ni modo de aislar la tabla expediente sin unirla.

Aqui les dejo los scripts que realice, para mayor claridad del asunto

Código:
CREATE TABLE empleado
(
   ficha           CHAR(10),
   a_paterno       CHAR(15),
   a_materno       CHAR(15),
   nombre          CHAR(25),
   genero          CHAR(2),
   fecha_nac       DATE,
   fecha_alta      DATE,
   direccion       CHAR(50),
   telefono        CHAR(15),
   tipo_trabajador CHAR (10),
   CONSTRAINT      pk_empleado PRIMARY KEY (ficha)
);

CREATE TABLE dependiente
(
   ficha            CHAR(10),
   ficha_d          CHAR(10),
   a_paterno        CHAR(15),
   a_materno        CHAR(15),
   nombre           CHAR(25),
   genero           CHAR(2),
   fecha_nac        DATE,
   fecha_alta       DATE,
   direccion        CHAR(50),
   telefono         CHAR(15),
   tipo_dependiente CHAR(2),
   CONSTRAINT pk_dependiente PRIMARY KEY (ficha_d),
   CONSTRAINT fk_dependiente FOREIGN KEY (ficha) REFERENCES empleado (ficha) ON DELETE CASCADE
);

CREATE TABLE expediente
(
   ficha                 CHAR(10),
   historial             CLOB,
   status                CHAR(10),
   fecha_ultima_consulta DATE,
   CONSTRAINT fk_expediente FOREIGN KEY (ficha)  REFERENCES empleado (ficha)       ON DELETE CASCADE,
   CONSTRAINT fk_expediente2 FOREIGN KEY (ficha) REFERENCIES dependiente (ficha_d) ON DELETE CASCADE,
);
Gracias por todo XD
  #2 (permalink)  
Antiguo 21/07/2009, 12:40
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Ayuda con diseño

Hablando por hablar, me imagino que tanto empleados como dependientes tienen un único expediente. Si es así, lo mejor sería tener una tabla expediente con un id_expediente y que las tablas empleado y dependiente hagan referencia a este id.

Si no es así, te recomendaría codificar diferente tanto empleados como dependiente y dejar el modelo como lo planteas. Por ejemplo... los códigos para empleados sean e1,e1,e3..eN. y para dependientes d1,d2..dN.

De tal forma, haya alguna forma de comparar mediante una consulta SQL que tipo de expedientes se generan.


Un saludo
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 22/07/2009, 14:14
Avatar de alguienmas  
Fecha de Ingreso: mayo-2009
Mensajes: 62
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Ayuda con diseño

yo pondria empleados y dependientes en la misma tabla...... digamos "persona" y la tabla "persona" tendria una relacion 1:n con sigo misma, asi sabrias que es un empleado por que la columna que tendria la key de quien depende, estaria nula.
Ahora la relacion de "persona" a expediente es de 1:n, independiente de si es empleado o dependiente.

Espero haber sido claro, saludos
  #4 (permalink)  
Antiguo 23/07/2009, 10:41
 
Fecha de Ingreso: enero-2009
Mensajes: 78
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ayuda con diseño

Gracias por responder XD

alguienmas, ¿pero que pasaria con la llave foránea de expediente? esa llave foránea haría referencia a la llave primaria de la tabla persona, o sea el empleado, quiere decir que el expediente solo podria guardar llaves que tengan que ver con el empleado.... corríjeme si estoy mal .

Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:24.