[英]mysql on Delete/Update or handle this in Code (e.g. PHP)
I have some problems to find a decission for an implementation. 我有一些问题需要找到一个实现的decission。
I have to design a new database using mysql. 我必须使用mysql设计一个新的数据库。 Now I found that I can do mysqlinternal actions on update or delete (NULL/NO ACTION / CASCADE).
现在我发现我可以在更新或删除时执行mysqlinternal操作(NULL / NO ACTION / CASCADE)。
EXAMPLE USING ON DELETE MYSQL INTERNAL: 使用删除MYSQL内部的示例:
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 (`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` ))
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 我应该在我的编程语言中实现关系并对与我当前数据集相关的表进行查询,还是应该以某种方式实现数据库,这允许mysql内部upate / delete Action
Thanks in advance. 提前致谢。
My suggestion would be to implement the constraints in your RDBMS. 我的建议是在你的RDBMS中实现约束。 It provides
data integrity ,
better performance ,
less coding , and
less chance of inconsistencies caused by the programmer.
它提供了数据完整性 ,
更好的性能 ,
更少的编码 ,以及程序员引起
的不一致的可能性 。
我想把所有这些关系留给数据库...数据库中的关系比在代码中实现它更好...可靠,优化,性能更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.