Поэтому у меня возникли проблемы с созданием двух баз данных под названием role_perm
а также user_role
, Я просто не мог узнать, где проблема, так как она показывает мне:
Ограничение внешнего ключа сформировано неправильно
Для обоих role_perm
а также user_role
Есть пять процедур, которые автоматически создают мои базы данных, эти коды мои коды MySQL …
CREATE TABLE `users` (
ID INT(8) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(45) NOT NULL,
`firstname` VARCHAR(45) NOT NULL,
`lastname` VARCHAR(45) NOT NULL,
`mobile` VARCHAR(45) NOT NULL,
`home` VARCHAR(45) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE = InnoDB;
CREATE TABLE `roles` (
`role_id` INT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`role_name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`role_id`)
) ENGINE = InnoDB;
CREATE TABLE `permissions` (
`perm_id` INT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`perm_desc` VARCHAR(50) NOT NULL,
PRIMARY KEY (`perm_id`)
) ENGINE = InnoDB;
CREATE TABLE `role_perm` (
`role_id` INT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`perm_id` INT(8) NOT NULL,
INDEX (`role_id`, `perm_id`),
FOREIGN KEY (role_id) REFERENCES roles(role_id),
FOREIGN KEY (perm_id) REFERENCES permissions(perm_id)
) ENGINE = InnoDB;
CREATE TABLE `user_role` (
`user_id` INT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`role_id` INT(8) NOT NULL,
INDEX (`user_id`, `role_id`),
FOREIGN KEY (user_id) REFERENCES users.ID,
FOREIGN KEY (role_id) REFERENCES roles.role_id
) ENGINE = InnoDB;
Задача ещё не решена.
Других решений пока нет …