Stačí tohle?
CREATE TABLE `user` (
`uId` INT(11) NOT NULL AUTO_INCREMENT,
`uLogin` VARCHAR(50) NOT NULL COLLATE 'utf8_czech_ci',
`uPass` VARCHAR(128) NOT NULL COLLATE 'utf8_czech_ci',
`uEmail` VARCHAR(50) NOT NULL COLLATE 'utf8_czech_ci',
`uActive` INT(11) NOT NULL,
PRIMARY KEY (`uId`),
UNIQUE INDEX `uLogin` (`uLogin`)
)
COLLATE='utf8_czech_ci'
ENGINE=InnoDB
CREATE TABLE `groups` (
`gId` INT(11) NOT NULL AUTO_INCREMENT,
`gName` VARCHAR(50) NOT NULL COLLATE 'utf8_czech_ci',
`gDescription` TEXT NULL COLLATE 'utf8_czech_ci',
PRIMARY KEY (`gId`),
UNIQUE INDEX `gName` (`gName`)
)
COLLATE='utf8_czech_ci'
ENGINE=InnoDB
CREATE TABLE `membership` (
`mId` INT(11) NOT NULL AUTO_INCREMENT,
`muId` INT(11) NOT NULL,
`mgId` INT(11) NOT NULL,
PRIMARY KEY (`mId`),
INDEX `FK_membership_user` (`muId`),
INDEX `FK_membership_groups` (`mgId`),
CONSTRAINT `FK_membership_groups` FOREIGN KEY (`mgId`) REFERENCES `groups` (`gId`) ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT `FK_membership_user` FOREIGN KEY (`muId`) REFERENCES `user` (`uId`) ON UPDATE CASCADE ON DELETE CASCADE
)
COLLATE='utf8_czech_ci'
ENGINE=InnoDB
CREATE TABLE `role` (
`rId` INT(11) NOT NULL DEFAULT '0',
`rAccessLevel` TINYINT(1) NOT NULL DEFAULT '0',
`rGroupAdd` TINYINT(1) NOT NULL DEFAULT '0',
`rGroupChange` TINYINT(1) NOT NULL DEFAULT '0',
`rGroupDelete` TINYINT(1) NOT NULL DEFAULT '0',
`rUserAdd` TINYINT(1) NOT NULL DEFAULT '0',
`rUserChange` TINYINT(1) NOT NULL DEFAULT '0',
`rUserDelete` TINYINT(1) NOT NULL DEFAULT '0',
INDEX `rId` (`rId`),
CONSTRAINT `FK_role_groups` FOREIGN KEY (`rId`) REFERENCES `groups` (`gId`) ON UPDATE CASCADE ON DELETE CASCADE
)
COLLATE='utf8_czech_ci'
ENGINE=InnoDB;
Chtěl sem tam přidat do User sloupek primaryGroup s referencí groups.gId, ale hláška viz předchozí post.