У меня есть некоторые проблемы, чтобы найти решение для реализации.
Я должен спроектировать новую базу данных, используя mysql.Теперь я обнаружил, что могу выполнять mysqlinternal действия при обновлении или удалении (NULL / NO ACTION / CASCADE).
ПРИМЕР ИСПОЛЬЗОВАНИЯ НА УДАЛИТЬ 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;
Или этот способ лучше иполностью удалить каждое обновление из кода приложения:
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;
Теперь я не уверен, какой из способов наилучшим образом обеспечивает высокий уровень производительности.
Должен ли я реализовать отношения в моем языке программированияи выполнить запрос к таблицам, которые относятся к моему текущему набору данных, или я должен реализовать базу данных таким образом, чтобы можно было выполнить внутреннее обновление / удаление mysql
Заранее спасибо.