Ich benutze es nicht.
Habe das selbst mal eben in meiner Datenbank ausprobiert und korrigiert. So sollte es eigentlich laufen, probiere es mal aus. Lösche vorher bitte die vier Tabellen noch einmal raus.
CREATE TABLE IF NOT EXISTS `roles` (
`role_id` int(10) unsigned NOT NULL auto_increment,
`name` text,
PRIMARY KEY (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `permissions` (
`permission_id` int(10) NOT NULL auto_increment,
`code` text,
`name` text,
PRIMARY KEY (`permission_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `role_users` (
`role_user_id` int(10) NOT NULL auto_increment,
`user_id` int(10) unsigned NOT NULL,
`role_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`role_user_id`),
KEY `user_id` (`user_id`),
KEY `role_id` (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `role_permissions` (
`role_permission_id` int(10) NOT NULL auto_increment,
`permission_id` int(10) NOT NULL,
`role_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`role_permission_id`),
KEY `permission_id` (`permission_id`),
KEY `role_id` (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
ALTER TABLE `role_users`
ADD FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `role_users`
ADD FOREIGN KEY (`role_id`) REFERENCES `roles` (`role_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `role_permissions`
ADD FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`permission_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `role_permissions`
ADD FOREIGN KEY (`role_id`) REFERENCES `roles` (`role_id`) ON DELETE CASCADE ON UPDATE CASCADE;