Pourquoi pas seulement deux tableaux? Un pour les membres S et un pour les membres P. Vous pouvez utiliser des identifiants remplis de zéro. S'il est absolument nécessaire que les numéros soient uniques, c'est-à-dire que vous ne voulez pas que S000001 et P000001 existent, utilisez une autre table pour stocker les identifiants uniques et les référencer dans vos tables S et P.
Quelque chose comme:
-- Table `ids`
CREATE TABLE IF NOT EXISTS `ids` (
`master_id` INT ZEROFILL NOT NULL AUTO_INCREMENT ,
`member_type` ENUM('S','P') NULL ,
PRIMARY KEY (`master_id`))
ENGINE = InnoDB;
-- Table `s_type`
CREATE TABLE IF NOT EXISTS `s_type` (
`s_type_id` INT NOT NULL ,
`master_id` INT NULL ,
PRIMARY KEY (`s_type_id`) ,
INDEX `fk_s_type_1` (`s_type_id` ASC) ,
CONSTRAINT `fk_s_type_1`
FOREIGN KEY (`s_type_id`)
REFERENCES `ids` (`master_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- Table `s_type_copy1`
CREATE TABLE IF NOT EXISTS `s_type_copy1` (
`p_type_id` INT NOT NULL ,
`master_id` INT NULL ,
PRIMARY KEY (`p_type_id`) ,
INDEX `fk_s_type_copy1_1` (`p_type_id` ASC) ,
CONSTRAINT `fk_s_type_copy1_1`
FOREIGN KEY (`p_type_id`)
REFERENCES `ids` (`master_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
Si vous voulez aller très simple, il suffit d'utiliser un identifiant auto-incrémentée en liaison avec un CHAR dénombrée (1) pour 'S' ou 'P'. Vous avez juste besoin de les assembler lorsque vous avez besoin d'afficher. La colonne CHAR (1) peut être utilisée pour déterminer le type d'appartenance.
Si vous ne prévoyez pas d'ajouter d'autres types d'appartenances, vous pouvez même utiliser un TINYINT comme un booléen (0 = 'S', 1 = 'P').
-- Table `ids`
CREATE TABLE IF NOT EXISTS `ids` (
`member_id` INT ZEROFILL NOT NULL AUTO_INCREMENT ,
`member_type` ENUM('S','P') NULL ,
PRIMARY KEY (`member_id`))
ENGINE = InnoDB;
... ou ...
-- Table `ids`
CREATE TABLE IF NOT EXISTS `ids` (
`member_id` INT ZEROFILL NOT NULL AUTO_INCREMENT ,
`member_type` TINYINT ,
PRIMARY KEY (`member_id`))
ENGINE = InnoDB;
Voici une réponse simple http://stackoverflow.com/questions/611340/how-can-i-set- autoincrement-format-to-0001-in-mysql –