Cita: Originalmente publicado por -thor-
hola,
Es necesario,que relacione la tabla password,con la tabla productos,para controlar el acceso de usuario,ya que la consulta,para comprobar si un usuario tiene acceso o no al sistema,la hago directamente a la tabla password,en donde compruebo el rut y password de dicho usuario.
Realmente no entiendo tu pregunta.
Disculpa,fui poco claro,en esta pregunta quize referirme a lo de integridad referencial,por eso preguntaba si era necesario,la relacion de la tabla password a la tabla productos,porque,si yo borraba un usuario,la clave foranea que pertenece al rut del usuario,quedaria en blanco y me daria un error.
Cita: A lo que tu te refieres es a la integridad referencial.
Para solucionar el tema de que al eliminar una tupla cuya llave primaria es llave foranea de otra tupla, no queden inconsistencias, se utiliza la clausula
ON DELETE CASCADE.
La sintaxis es mas o menos esta
CONSTRAINT nombre REFERENCES tablaexterna (campoexterno1)
ON UPDATE CASCADE
Esto queire decir que cuando defines una llave foranea en una tabla mediante SQL, y utilizas la rectriccion CASCADE, cuando se elimine la tupla con la llave a la cual nuestra tabla hace referencia, entonces se eliminara tambien esta tupla.
Este es mi codigo sql de la tabla producto y de las claves foranea,
que cambios debo realizarle,para lograr borrar en cascade.
Código:
/*==============================================================*/
/* Table: producto */
/*==============================================================*/
create table producto
(
prd_cod_pro INT(4) not null,
cat_cod_id INT(4),
pass_rut_persona CHAR(10),
mar_cod_marca INT(4),
prd_fecha_creacion DATE,
prd_hora_creacion TIME,
prd_fecha_lanzamiento DATE,
prd_nombre_producto CHAR(20),
prd_precio INT(6),
prd_descripcion CHAR(80),
prd_producto_existente INT(4),
prd_unidad_caja INT(4),
prd_suspendido CHAR(2),
prd_oferta CHAR(2),
primary key (prd_cod_pro)
)type = InnoDB charset=latin1 collate=latin1_spanish_ci;
alter table password add constraint FK_USUARIOS foreign key (pass_rut_persona)
references usuarios (per_rut_persona) on delete restrict on update restrict;
alter table producto add constraint FK_CATEGORIA foreign key (cat_cod_id)
references categoria (cat_cod_id) on delete restrict on update restrict;
alter table producto add constraint FK_MARCA foreign key (mar_cod_marca)
references marca (mar_cod_marca) on delete restrict on update restrict;
alter table producto add constraint FK_PASSWORD foreign key (pass_rut_persona)
references password (pass_rut_persona) on delete restrict on update restrict;
gracias