Ver Mensaje Individual
  #8 (permalink)  
Antiguo 03/03/2013, 13:04
franroa
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: usuarios free / premium

Ya siento ser pesado. Pero no soy capaz de hacer la lógica.

Las nuevas tablas, si he entendido bien:

CREATE TABLE users(
userID INT(11) NOT NULL AUTO_INCREMENT,
user VARCHAR(20) NOT NULL,
password VARCHAR(10) NOT NULL,
premium ENUM ('YES', 'NO') NOT NULL DEFAULT 'NO',
fecha_baja DATE NULL,
uImgPath VARCHAR(10),
uGradation VARCHAR(15),
PRIMARY KEY (userID)
)ENGINE=INNODB;



CREATE TABLE filespremium(
filePremiumID BIGINT NOT NULL AUTO_INCREMENT,
fpPath TEXT NOT NULL,/*UNIQUE*/
fpType ENUM('IMAGE', 'VIDEO', 'PRESENTATION', 'DOCUMENT', 'WEB', 'NOTE', 'BOOK', 'AUDIO') NOT NULL,
fpName VARCHAR (20) NOT NULL,
fpDate DATE NOT NULL,
fpPremium ENUM ('YES','NO') NOT NULL,
fpUploader INT NOT NULL,
PRIMARY KEY (filePremiumID),
INDEX (fpUploader),
FOREIGN KEY (fpUploader)
REFERENCES users(userID)
ON UPDATE CASCADE ON DELETE CASCADE
)ENGINE=INNODB;



Y cuando la variable "fecha_baja" de la tabla usuarios sea NOT NULL borro todos los archivos "premium" de los usuarios "premium". Algo asi:

IF (user.fecha_baja IS NOT NULL) THEN (Recorriendo "files" IF(user.ID = file.Uploader AND file.premium="YES") THEN (borra archivo) ).


Lo malo es que eso hay que ponerlo en un trigger, y creo que no es posible verdad?


He entendido bien lo que debía hacer?
Muchas gracias