none
Eliminar datos con llaves foraneas RRS feed

  • Pregunta

  • Saludos. 

    Tengo la siguiente estructura de base de datos:

     table pacient (
    	id int not null auto_increment primary key,
    	name varchar(50) not null,
    	lastname varchar(50) not null,
    	email varchar(255) not null,
    	address varchar(255) not null,
    	phone varchar(255) not null,
    	cedula varchar(255) not null,
    	seguro varchar(255),
    	username varchar(255),
      password varchar(255),
      type varchar(250),
    	is_active boolean not null default 1,
    	created_at datetime not null
    );
    
     table medic (
    	id int not null auto_increment primary key,
    	name varchar(50) not null,
    	lastname varchar(50),
    	email varchar(255) not null,
    	address varchar(255),
    	phone varchar(255),
    	is_active boolean not null default 1,
    	created_at datetime not null,
    	category_id int,
    	foreign key (category_id) references category(id)
    );
    
    
     table reservation(
    	id int not null auto_increment primary key,
    	asuntos_id int not null,
    	note text not null,
    	date_at varchar(50) not null,
    	time_at varchar(50) not null,
    	created_at datetime not null,
    	pacient_id int not null,
    	medic_id int not null,
    	is_web boolean not null default 0,
    	foreign key (pacient_id) references pacient(id),
    	foreign key (asuntos_id) references asuntos(id),
    	foreign key (medic_id) references medic(id)
    );

    sin embargo cuando trato de eliminar un paciente o un medico no puedo hacerlo porque estos son llave foraneas en la tabla reservacion y estan sus datos y si le activo la funcion de delete on cascade perderia los registros de las reservaciones anteriores, como podria hacer para poder dar de baja un paciente o medico sin tener que dar de baja las reservaciones que ya ha realizado? 

    diran que si el medico se va lo ideal seria dar de baja la reservacion o cambiar de medico y es valido pero la tabla reservaciones tambien funciona como historico asi que si elimino el medico aunque se valla de la clinica tambien acabaria con el registro de visitas de ese paciente y no me permiten guardar el historico en otra tabla

    martes, 8 de enero de 2019 3:44

Respuestas

Todas las respuestas