mysql on Delete/Update or handle this in Code (e.g. PHP)
I have some problems to find a decission for an implementation.
I have to design a new database using mysql. Now I found that I can do mysqlinternal actions on update or delete (NULL/NO ACTION / CASCADE).
EXAMPLE USING ON DELETE MYSQL INTERNAL:
CREATE TABLE IF NOT EXISTS `mydb`.`users` (
`idusers` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`name` CHAR(30) NOT NULL ,
`mail` CHAR(50) NOT NULL ,
PRIMARY KEY (`idusers`) )
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `mydb`.`avatars` (
`users_idusers` INT UNSIGNED NOT NULL ,
`size` VARCHAR(45) NOT NULL ,
`color` VARCHAR(45) NOT NULL ,
`weight` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`users_idusers`) ,
CONSTRAINT `fk_avatars_users`
FOREIGN KEY (`users_idusers` )
REFERENCES `mydb`.`users` (`idusers` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
Or is this way better and do each update delete completly from Application code:
CREATE TABLE IF NOT EXISTS `mydb`.`users` (
`idusers` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`name` CHAR(30) NOT NULL ,
`mail` CHAR(50) NOT NULL ,
PRIMARY KEY (`idu开发者_如何转开发sers`) )
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `mydb`.`avatars` (
`users_idusers` INT UNSIGNED NOT NULL ,
`size` VARCHAR(45) NOT NULL ,
`color` VARCHAR(45) NOT NULL ,
`weight` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`users_idusers`) ,
CONSTRAINT `fk_avatars_users`
FOREIGN KEY (`users_idusers` )
REFERENCES `mydb`.`users` (`idusers` ))
ENGINE = InnoDB;
Now, I'm not sure which is the best way which ensures a high performace level.
Should I implement relations in my programminglanguage and do a query on tables wich are relatet to my current dataset or should I implement the database in a way, which allows a mysql internal upate/delete Action
Thanks in advance.
My suggestion would be to implement the constraints in your RDBMS. It provides data integrity, better performance, less coding, and less chance of inconsistencies caused by the programmer.
i would like to leave all of this relations to the Database ...relations in database is better than implementing it in the code ... reliable , optimized , performance better .
精彩评论