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

error en base datos

Estas en el tema de error en base datos en el foro de Bases de Datos General en Foros del Web. Buenas le explico estoy haciendo una base de datos en toad data modeler extraje el script y mando a cargar en phpmyadmin pero sucede un ...
  #1 (permalink)  
Antiguo 24/01/2011, 09:46
 
Fecha de Ingreso: octubre-2010
Mensajes: 46
Antigüedad: 13 años, 6 meses
Puntos: 0
error en base datos

Buenas le explico estoy haciendo una base de datos en toad data modeler extraje el script y mando a cargar en phpmyadmin pero sucede un problema cuando conecto la BD al dreamweaver e ingreso datos para que los registre sale este error:

Cannot add or update a child row: a foreign key constraint fails (`prueba`.`afiliados`, CONSTRAINT `Relationship4` FOREIGN KEY (`afil_hist`) REFERENCES `historia` (`hist_cod`))

revise adicionalmente que las tablas estan en tipo InnoBD pero no se que es lo que sucede de todas formas les dejo el script a ver si ven algun error por favor necesito ayuda sobre esto , gracias:

-- Table afiliados

CREATE TABLE afiliados
(
afil_cod Varchar(50) NOT NULL
COMMENT 'codigo',
afil_nom Varchar(20) NOT NULL
COMMENT 'nombre',
afil_apell Varchar(20) NOT NULL
COMMENT 'apellido',
afil_sex Char(1) NOT NULL
COMMENT 'sexo',
afil_ced Varchar(8)
COMMENT 'cedula',
afil_ed Varchar(2) NOT NULL
COMMENT 'edad',
afil_fnac Date NOT NULL
COMMENT 'fecha de nacimiento',
afil_direcc Char(100) NOT NULL
COMMENT 'direccion',
afil_telf Char(10) NOT NULL
COMMENT 'telefono',
afil_tip Varchar(20) NOT NULL,
afil_hist Varchar(20) NOT NULL,
afil_sed Varchar(20) NOT NULL
)
COMMENT = 'afiliados al ipasme (pacientes)
'
;

ALTER TABLE afiliados ADD PRIMARY KEY (afil_cod)
;

ALTER TABLE afiliados ADD UNIQUE afil_ced (afil_ced)
;

-- Table medico

CREATE TABLE medico
(
med_cod Varchar(20) NOT NULL
COMMENT 'codigo',
med_nom Varchar(20) NOT NULL
COMMENT 'nombre',
med_apell Varchar(20) NOT NULL
COMMENT 'apellido',
med_sex Char(1) NOT NULL
COMMENT 'sex',
med_ced Varchar(8) NOT NULL
COMMENT 'cedula',
med_telf Varchar(10) NOT NULL
COMMENT 'telefono',
med_tur Char(10) NOT NULL
COMMENT 'turno',
med_cons Char(2) NOT NULL
COMMENT 'consultorio',
med_esp Varchar(20) NOT NULL
)
;

ALTER TABLE medico ADD PRIMARY KEY (med_cod)
;

ALTER TABLE medico ADD UNIQUE med_ced (med_ced)
;

-- Table historia

CREATE TABLE historia
(
hist_cod Varchar(20) NOT NULL,
hist_adm Int NOT NULL
)
COMMENT = 'historia medica
'
;

ALTER TABLE historia ADD PRIMARY KEY (hist_cod)
;

-- Table cita

CREATE TABLE cita
(
cit_cod Varchar(20) NOT NULL
COMMENT 'codigo',
cit_med Varchar(20) NOT NULL,
cit_fech Date NOT NULL
COMMENT 'fecha',
cit_hora Time NOT NULL,
cit_hist Varchar(20) NOT NULL
)
;

ALTER TABLE cita ADD PRIMARY KEY (cit_cod)
;

-- Table tipo

CREATE TABLE tipo
(
tip_cod Varchar(20) NOT NULL,
tip_nom Char(20) NOT NULL
COMMENT 'nombre'
)
COMMENT = 'tipo de afiliado
'
;

ALTER TABLE tipo ADD PRIMARY KEY (tip_cod)
;

-- Table sede

CREATE TABLE sede
(
sed_cod Varchar(20) NOT NULL
COMMENT 'sede',
sed_nom Varchar(20),
sed_ubic Varchar(20) NOT NULL
COMMENT 'ubicacion',
sed_telf Char(10) NOT NULL
COMMENT 'telefono'
)
;

ALTER TABLE sede ADD PRIMARY KEY (sed_cod)
;

ALTER TABLE sede ADD UNIQUE sed_nom (sed_nom)
;

-- Table laboratorio

CREATE TABLE laboratorio
(
lab_cod Varchar(20) NOT NULL,
lab_cit Varchar(20) NOT NULL,
lab_nom Varchar(20) NOT NULL,
lab_descp Varchar(20)
)
;

ALTER TABLE laboratorio ADD PRIMARY KEY (lab_cod)
;

ALTER TABLE laboratorio ADD UNIQUE lab_nom (lab_nom)
;

-- Table especialidad

CREATE TABLE especialidad
(
esp_cod Varchar(20) NOT NULL,
esp_nom Varchar(20),
esp_ubic Char(20) NOT NULL
)
;

ALTER TABLE especialidad ADD PRIMARY KEY (esp_cod)
;

ALTER TABLE especialidad ADD UNIQUE esp_nom (esp_nom)
;

-- Table administrador

CREATE TABLE administrador
(
adm_cod Int NOT NULL AUTO_INCREMENT,
adm_usuario Varchar(10) NOT NULL
COMMENT 'nombre del usuario',
adm_clav Varchar(10) NOT NULL
COMMENT 'contraseña del sistema',
adm_nom Varchar(10) NOT NULL,
adm_apell Varchar(20) NOT NULL,
PRIMARY KEY (adm_cod)
)
COMMENT = 'administracion de la entrada del sistema con validacion de usuarios
'
;

ALTER TABLE administrador ADD UNIQUE adm_usuario (adm_usuario)
;

ALTER TABLE administrador ADD UNIQUE adm_clav (adm_clav)
;

-- Create relationships section -------------------------------------------------

ALTER TABLE cita ADD CONSTRAINT Relationship18 FOREIGN KEY (cit_med) REFERENCES medico (med_cod) ON DELETE RESTRICT ON UPDATE RESTRICT
;

ALTER TABLE afiliados ADD CONSTRAINT Relationship4 FOREIGN KEY (afil_hist) REFERENCES historia (hist_cod) ON DELETE RESTRICT ON UPDATE RESTRICT
;

ALTER TABLE cita ADD CONSTRAINT Relationship7 FOREIGN KEY (cit_hist) REFERENCES historia (hist_cod) ON DELETE RESTRICT ON UPDATE RESTRICT
;

ALTER TABLE laboratorio ADD CONSTRAINT Relationship16 FOREIGN KEY (lab_cit) REFERENCES cita (cit_cod) ON DELETE RESTRICT ON UPDATE RESTRICT
;

ALTER TABLE afiliados ADD CONSTRAINT Relationship3 FOREIGN KEY (afil_tip) REFERENCES tipo (tip_cod) ON DELETE RESTRICT ON UPDATE RESTRICT
;

ALTER TABLE afiliados ADD CONSTRAINT Relationship5 FOREIGN KEY (afil_sed) REFERENCES sede (sed_cod) ON DELETE RESTRICT ON UPDATE RESTRICT
;

ALTER TABLE medico ADD CONSTRAINT Relationship15 FOREIGN KEY (med_esp) REFERENCES especialidad (esp_cod) ON DELETE RESTRICT ON UPDATE RESTRICT
;

ALTER TABLE historia ADD CONSTRAINT Relationship14 FOREIGN KEY (hist_adm) REFERENCES administrador (adm_cod) ON DELETE RESTRICT ON UPDATE RESTRICT
;
  #2 (permalink)  
Antiguo 24/01/2011, 10:00
Avatar de 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: error en base datos

No es un problema estructural, sino de datos. Estás tratando de darle alta al afiliado antes de crear la historia, y tu has definido que el afiliado depende de la historia.
A mi entender hay un problema de lógica: La historia le pertenece a un afiliado y no al revés, por lo cual la PK del afiliado debe ir en la historia.

Si la relación es 1:1, esto es producto precisamente de un problema de análisis. Normalmente la regla de estas cardinalidades dice que la PK de una va en como FK de la otra, nada más. Pero para que la dependencia sea razonable hay que verlo según lo que la regla de negocio diga, y en este caso la pregunta es ¿qué es lo que existe primero: la afiliación, o el alta de la historia?
A mi entender, es como te lo dije: Alta de la afiliación y luego alta de la historia.

Deberás modificar el diagrama, el script y la base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 24/01/2011, 10:01
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: error en base datos

yo corro el script y lo unico que me saca el error es que en la tabla administrador el comment es muy largo.

solo cambié la sentencia:
Código MySQL:
Ver original
  1. CREATE TABLE administrador
  2. (
  3. adm_usuario Varchar(10) NOT NULL
  4. COMMENT 'nombre del usuario',
  5. adm_clav Varchar(10) NOT NULL
  6. COMMENT 'contraseña del sistema',
  7. adm_nom Varchar(10) NOT NULL,
  8. adm_apell Varchar(20) NOT NULL,
  9. PRIMARY KEY (adm_cod)
  10. )
  11. COMMENT = 'administracion de la entrada del sistema con validacion de usuarios
  12. '
  13. ;

por

Código MySQL:
Ver original
  1. CREATE TABLE administrador
  2. (
  3. adm_usuario Varchar(10) NOT NULL
  4. COMMENT 'nombre del usuario',
  5. adm_clav Varchar(10) NOT NULL
  6. COMMENT 'contraseña del sistema',
  7. adm_nom Varchar(10) NOT NULL,
  8. adm_apell Varchar(20) NOT NULL,
  9. PRIMARY KEY (adm_cod)
  10. )
  11. COMMENT = 'admon entrada del sistema con validacion de usuarios'
  12. ;

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 24/01/2011, 12:36
 
Fecha de Ingreso: octubre-2010
Mensajes: 46
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: error en base datos

ok gnzsoloyo me aprecio bueno ese datalle no lo habia visto.. adicionalmente queria preguntarte segun me dijeron acerca de ese error era referente a la eliminación en CASCADA en este caso tendria nada mas que cambiar en los alter table y ponerles en la parte final "ON DELETE CASCADE" para que efectue el proceso cierto o tengo que hacer algo adicional para que efectue el proceso.
  #5 (permalink)  
Antiguo 24/01/2011, 12:52
 
Fecha de Ingreso: octubre-2010
Mensajes: 46
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: error en base datos

De todas formas seria mucha molestia si puediera revisarme mi base de datos que hice en toad data modeler a ver que vistaso le ve al asunto en general se puede descargar el archivo desde aqui:

http://www.4shared.com/file/R6u6yX6o/script_mysql.html
  #6 (permalink)  
Antiguo 24/01/2011, 13:37
Avatar de 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: error en base datos

La idea sería:
Código MySQL:
Ver original
  1. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
  2. SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
  3. SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
  4.  
  5. DROP SCHEMA IF EXISTS `prueba` ;
  6. CREATE SCHEMA IF NOT EXISTS `prueba` DEFAULT CHARACTER SET latin1 ;
  7. USE `prueba` ;
  8.  
  9. -- -----------------------------------------------------
  10. -- Table `administrador`
  11. -- -----------------------------------------------------
  12. DROP TABLE IF EXISTS `administrador` ;
  13.  
  14. CREATE  TABLE IF NOT EXISTS `administrador` (
  15.   `adm_cod` INT(11) NOT NULL AUTO_INCREMENT ,
  16.   `adm_usuario` VARCHAR(10) NOT NULL COMMENT 'nombre del usuario' ,
  17.   `adm_clav` VARCHAR(10) NOT NULL COMMENT 'contraseña del sistema' ,
  18.   `adm_nom` VARCHAR(10) NOT NULL ,
  19.   `adm_apell` VARCHAR(20) NOT NULL ,
  20.   PRIMARY KEY (`adm_cod`) ,
  21.   UNIQUE INDEX `adm_usuario` (`adm_usuario` ASC) ,
  22.   UNIQUE INDEX `adm_clav` (`adm_clav` ASC) )
  23. DEFAULT CHARACTER SET = latin1
  24. COMMENT = 'administracion de validacion de usuarios';
  25.  
  26.  
  27. -- -----------------------------------------------------
  28. -- Table `sede`
  29. -- -----------------------------------------------------
  30. DROP TABLE IF EXISTS `sede` ;
  31.  
  32. CREATE  TABLE IF NOT EXISTS `sede` (
  33.   `sed_cod` VARCHAR(20) NOT NULL COMMENT 'sede' ,
  34.   `sed_nom` VARCHAR(20) NULL DEFAULT NULL ,
  35.   `sed_ubic` VARCHAR(20) NOT NULL COMMENT 'ubicacion' ,
  36.   `sed_telf` CHAR(10) NOT NULL COMMENT 'telefono' ,
  37.   PRIMARY KEY (`sed_cod`) ,
  38.   UNIQUE INDEX `sed_nom` (`sed_nom` ASC) )
  39. DEFAULT CHARACTER SET = latin1;
  40.  
  41.  
  42. -- -----------------------------------------------------
  43. -- Table `tipo`
  44. -- -----------------------------------------------------
  45. DROP TABLE IF EXISTS `tipo` ;
  46.  
  47. CREATE  TABLE IF NOT EXISTS `tipo` (
  48.   `tip_cod` VARCHAR(20) NOT NULL ,
  49.   `tip_nom` CHAR(20) NOT NULL COMMENT 'nombre' ,
  50.   PRIMARY KEY (`tip_cod`) )
  51. DEFAULT CHARACTER SET = latin1
  52. COMMENT = 'tipo de afiliado\r\n';
  53.  
  54.  
  55. -- -----------------------------------------------------
  56. -- Table `afiliados`
  57. -- -----------------------------------------------------
  58. DROP TABLE IF EXISTS `afiliados` ;
  59.  
  60. CREATE  TABLE IF NOT EXISTS `afiliados` (
  61.   `afil_cod` VARCHAR(50) NOT NULL COMMENT 'codigo' ,
  62.   `afil_nom` VARCHAR(20) NOT NULL COMMENT 'nombre' ,
  63.   `afil_apell` VARCHAR(20) NOT NULL COMMENT 'apellido' ,
  64.   `afil_sex` CHAR(1) NOT NULL COMMENT 'sexo' ,
  65.   `afil_ced` VARCHAR(8) NULL DEFAULT NULL COMMENT 'cedula' ,
  66.   `afil_ed` VARCHAR(2) NOT NULL COMMENT 'edad' ,
  67.   `afil_fnac` DATE NOT NULL COMMENT 'fecha de nacimiento' ,
  68.   `afil_direcc` CHAR(100) NOT NULL COMMENT 'direccion' ,
  69.   `afil_telf` CHAR(10) NOT NULL COMMENT 'telefono' ,
  70.   `afil_tip` VARCHAR(20) NOT NULL ,
  71.   `afil_sed` VARCHAR(20) NOT NULL ,
  72.   PRIMARY KEY (`afil_cod`) ,
  73.   UNIQUE INDEX `afil_ced` (`afil_ced` ASC) ,
  74.   INDEX `Relationship3` (`afil_tip` ASC) ,
  75.   INDEX `Relationship5` (`afil_sed` ASC) ,
  76.   CONSTRAINT `Relationship5`
  77.     FOREIGN KEY (`afil_sed` )
  78.     REFERENCES `sede` (`sed_cod` ),
  79.   CONSTRAINT `Relationship3`
  80.     FOREIGN KEY (`afil_tip` )
  81.     REFERENCES `tipo` (`tip_cod` ))
  82. DEFAULT CHARACTER SET = latin1
  83. COMMENT = 'afiliados al ipasme (pacientes)\r\n';
  84.  
  85.  
  86. -- -----------------------------------------------------
  87. -- Table `historia`
  88. -- -----------------------------------------------------
  89. DROP TABLE IF EXISTS `historia` ;
  90.  
  91. CREATE  TABLE IF NOT EXISTS `historia` (
  92.   `hist_cod` VARCHAR(20) NOT NULL ,
  93.   `hist_adm` INT(11) NOT NULL ,
  94.   `afil_cod` VARCHAR(50) NOT NULL ,
  95.   PRIMARY KEY (`hist_cod`) ,
  96.   INDEX `Relationship14` (`hist_adm` ASC) ,
  97.   INDEX `fk_historia_afiliados1` (`afil_cod` ASC) ,
  98.   CONSTRAINT `Relationship14`
  99.     FOREIGN KEY (`hist_adm` )
  100.     REFERENCES `administrador` (`adm_cod` ),
  101.   CONSTRAINT `fk_historia_afiliados1`
  102.     FOREIGN KEY (`afil_cod` )
  103.     REFERENCES `afiliados` (`afil_cod` )
  104. DEFAULT CHARACTER SET = latin1
  105. COMMENT = 'historia medica\r\n';
  106.  
  107.  
  108. -- -----------------------------------------------------
  109. -- Table `especialidad`
  110. -- -----------------------------------------------------
  111. DROP TABLE IF EXISTS `especialidad` ;
  112.  
  113. CREATE  TABLE IF NOT EXISTS `especialidad` (
  114.   `esp_cod` VARCHAR(20) NOT NULL ,
  115.   `esp_nom` VARCHAR(20) NULL DEFAULT NULL ,
  116.   `esp_ubic` CHAR(20) NOT NULL ,
  117.   PRIMARY KEY (`esp_cod`) ,
  118.   UNIQUE INDEX `esp_nom` (`esp_nom` ASC) )
  119. DEFAULT CHARACTER SET = latin1;
  120.  
  121.  
  122. -- -----------------------------------------------------
  123. -- Table `medico`
  124. -- -----------------------------------------------------
  125. DROP TABLE IF EXISTS `medico` ;
  126.  
  127. CREATE  TABLE IF NOT EXISTS `medico` (
  128.   `med_cod` VARCHAR(20) NOT NULL COMMENT 'codigo' ,
  129.   `med_nom` VARCHAR(20) NOT NULL COMMENT 'nombre' ,
  130.   `med_apell` VARCHAR(20) NOT NULL COMMENT 'apellido' ,
  131.   `med_sex` CHAR(1) NOT NULL COMMENT 'sex' ,
  132.   `med_ced` VARCHAR(8) NOT NULL COMMENT 'cedula' ,
  133.   `med_telf` VARCHAR(10) NOT NULL COMMENT 'telefono' ,
  134.   `med_tur` CHAR(10) NOT NULL COMMENT 'turno' ,
  135.   `med_cons` CHAR(2) NOT NULL COMMENT 'consultorio' ,
  136.   `med_esp` VARCHAR(20) NOT NULL ,
  137.   PRIMARY KEY (`med_cod`) ,
  138.   UNIQUE INDEX `med_ced` (`med_ced` ASC) ,
  139.   INDEX `Relationship15` (`med_esp` ASC) ,
  140.   CONSTRAINT `Relationship15`
  141.     FOREIGN KEY (`med_esp` )
  142.     REFERENCES `especialidad` (`esp_cod` ))
  143. DEFAULT CHARACTER SET = latin1;
  144.  
  145.  
  146. -- -----------------------------------------------------
  147. -- Table `cita`
  148. -- -----------------------------------------------------
  149. DROP TABLE IF EXISTS `cita` ;
  150.  
  151. CREATE  TABLE IF NOT EXISTS `cita` (
  152.   `cit_cod` VARCHAR(20) NOT NULL COMMENT 'codigo' ,
  153.   `cit_med` VARCHAR(20) NOT NULL ,
  154.   `cit_fech` DATE NOT NULL COMMENT 'fecha' ,
  155.   `cit_hora` TIME NOT NULL ,
  156.   `cit_hist` VARCHAR(20) NOT NULL ,
  157.   PRIMARY KEY (`cit_cod`) ,
  158.   INDEX `Relationship18` (`cit_med` ASC) ,
  159.   INDEX `Relationship7` (`cit_hist` ASC) ,
  160.   CONSTRAINT `Relationship7`
  161.     FOREIGN KEY (`cit_hist` )
  162.     REFERENCES `historia` (`hist_cod` ),
  163.   CONSTRAINT `Relationship18`
  164.     FOREIGN KEY (`cit_med` )
  165.     REFERENCES `medico` (`med_cod` ))
  166. DEFAULT CHARACTER SET = latin1;
  167.  
  168.  
  169. -- -----------------------------------------------------
  170. -- Table `laboratorio`
  171. -- -----------------------------------------------------
  172. DROP TABLE IF EXISTS `laboratorio` ;
  173.  
  174. CREATE  TABLE IF NOT EXISTS `laboratorio` (
  175.   `lab_cod` VARCHAR(20) NOT NULL ,
  176.   `lab_cit` VARCHAR(20) NOT NULL ,
  177.   `lab_nom` VARCHAR(20) NOT NULL ,
  178.   `lab_descp` VARCHAR(20) NULL DEFAULT NULL ,
  179.   PRIMARY KEY (`lab_cod`) ,
  180.   UNIQUE INDEX `lab_nom` (`lab_nom` ASC) ,
  181.   INDEX `Relationship16` (`lab_cit` ASC) ,
  182.   CONSTRAINT `Relationship16`
  183.     FOREIGN KEY (`lab_cit` )
  184.     REFERENCES `cita` (`cit_cod` ))
  185. DEFAULT CHARACTER SET = latin1;
  186.  
  187.  
  188.  
  189. SET SQL_MODE=@OLD_SQL_MODE;
  190. SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
  191. SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Y su graficación:
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 24/01/2011, 13:47
Avatar de 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: error en base datos

El tema del ON DELETE ASCADE se realiza para que en caso de eliminar el registro base (que para mi entender sería el registro del afiliado), los registros dependientes de él se eliminasen sin necsidad de indicarlos. Esto significa que todo registro que tenga como FK la PK del afiliado debe´tener declarada la FK como ON DELETE CASCADE ON UPDATE CASCADE.
Cuando le pones RESTICT, sucede lo contrario: No puedes borrar el registro base porque tiene registros dependientes en otras tablas.
Además, toda restricción de clave foránea implica que el registro base debe existir en su tabla antes de que se puedan ingresar registros en otas tablas donde ese valor sea FK.
En otras palabras:
- No puedes ingresar un Afiliado sin antes ingresar el Tipo y la Sede que tendrá registrados.
- No puedes ingresar una Historia, sin antes ingresar al Afiliado que figura en esa historia, y un Administrador.
- No puedes ingresar una Cita sin ingresar primero Medico e Historia.
No puedes ingresar un Médico, sin antes ingresar una Especialidad.
- No puedes registrar un estudio en Laboratorio, sin antes registrar una Cita.

Ese es el esquema de dependencias forzosas que has puesto tu al sistema.

Hay algunos tips finales:
- ¿Cada Cita sólo puede dar lugar a un único pedido de laboratorio?
- ¿Cada médico sólo puede aparecer con una única especialidad?
- ¿Existen otros tipos de estudios que surjan de una Cita?

las respuestas a estas preguntas pueden hacer que se modifique el modelo de datos completamente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 24/01/2011, 14:36
 
Fecha de Ingreso: octubre-2010
Mensajes: 46
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: error en base datos

Ese es el esquema de dependencias forzosas que has puesto tu al sistema.

Hay algunos tips finales:
- ¿Cada Cita sólo puede dar lugar a un único pedido de laboratorio?
- ¿Cada médico sólo puede aparecer con una única especialidad?
- ¿Existen otros tipos de estudios que surjan de una Cita?

las respuestas a estas preguntas pueden hacer que se modifique el modelo de datos completamente.[/QUOTE]

OK gracias bueno esi quiero que en la parte de especialidad uno escoga por ejemplo especialidad pediatria y que hay salga una lista de los medicos de esa area.
  #9 (permalink)  
Antiguo 24/01/2011, 14:57
 
Fecha de Ingreso: octubre-2010
Mensajes: 46
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: error en base datos

[QUOTE=DAVIDR89;3718395]Ese es el esquema de dependencias forzosas que has puesto tu al sistema.

Hay algunos tips finales:
- ¿Cada Cita sólo puede dar lugar a un único pedido de laboratorio?
- ¿Cada médico sólo puede aparecer con una única especialidad?
- ¿Existen otros tipos de estudios que surjan de una Cita?

Si es una cita para un unico pedido de laboratorio y no hay otros tipos de estudios. gracias x la ayuda llevo dias tratando de que alguien diera orientacion.

Podrias decirme que progrma utilizastes para editar las tablas.

Última edición por DAVIDR89; 24/01/2011 a las 15:11
  #10 (permalink)  
Antiguo 24/01/2011, 15:30
Avatar de 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: error en base datos

Cita:
Iniciado por DAVIDR89 Ver Mensaje
OK gracias bueno esi quiero que en la parte de especialidad uno escoga por ejemplo especialidad pediatria y que hay salga una lista de los medicos de esa area.
Pero eso no implica que no pueda tener más de una especialidad. En realidad el que salga un listado de Pediatras, no significa que el mismo médico no pueda aparecer en otro listado. Es un problema de consulta y no de modelo de datos.
Pero ese esquema, tal y como está, no puede aceptar que un médico pueda ser Traumatólogo y Cirujano, o Gastroenterólogo y Gastroenterólogo Pediátrico, etc.
Esas son situaciones posibles en un centro médico.
La diferencia radica en que si un mismo médico puede poseer más de una certificación de especialista, está faltando una tabla...

Respecto al software, es el MySQL Workbench, que se puede obtener en la página oficial de MySQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 24/01/2011, 16:38
 
Fecha de Ingreso: octubre-2010
Mensajes: 46
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: error en base datos

Bueno si tienes razon, pero segun se requiere por lo momentos asi, que se pueda escoger la especialidad y que salgan los medicos especializados en ese campo. De todas formas segun ese modelo de tablas que me pusistes tu me dices que deberia correr sin errores, si es asi voy a probarlo montandolo en phpmyadmin y hacer los formularios con dreamweaver. Podrias pasarme el archivo para verlo desde el progrma que me mencionastes. gracias una vez mas
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 09:55.