par
Cypher_PHP » 09 déc. 2008, 11:55
ok
je vais modifier la structure pour ajouter la clé étrangère
je vous en dirai plus aujourd'hui
je voudrais solliciter vos avis sur mes structures qui me paraissent longs (excuse moi)
(il n'existe pas de pièces jointes??)
Code : Tout sélectionner
DROP DATABASE IF EXISTS `dbgestforma` ;
CREATE SCHEMA IF NOT EXISTS `dbgestforma` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
USE `dbgestforma`;
-- -----------------------------------------------------
-- Table `dbgestforma`.`agent`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`agent` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`agent` (
`id_agent` INT(3) NOT NULL AUTO_INCREMENT ,
`nom` VARCHAR(50) NOT NULL ,
`prenom` VARCHAR(50) NOT NULL ,
INDEX `id_agent` (`id_agent` ASC) ,
PRIMARY KEY (`id_agent`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `dbgestforma`.`code`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`code` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`code` (
`id_code` INT(5) NOT NULL AUTO_INCREMENT ,
`code` VARCHAR(10) NOT NULL ,
`nom` VARCHAR(50) NOT NULL ,
INDEX `id_code` (`id_code` ASC) ,
PRIMARY KEY (`id_code`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `dbgestforma`.`horaire`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`horaire` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`horaire` (
`id_horaire` INT(3) NOT NULL AUTO_INCREMENT ,
`matin` VARCHAR(15) NOT NULL ,
`apres_midi` VARCHAR(17) NOT NULL ,
INDEX `id_horaire` (`id_horaire` ASC) ,
PRIMARY KEY (`id_horaire`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `dbgestforma`.`salle`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`salle` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`salle` (
`id_salle` INT(3) NOT NULL AUTO_INCREMENT ,
`salle` VARCHAR(15) NOT NULL ,
`etage` VARCHAR(5) NOT NULL ,
`adresse` VARCHAR(50) NOT NULL ,
`adresse_bis` VARCHAR(50) NOT NULL ,
`code_postal` INT(6) NOT NULL ,
`ville` VARCHAR(25) NOT NULL ,
INDEX `id_salle` (`id_salle` ASC) ,
PRIMARY KEY (`id_salle`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `dbgestforma`.`tuteur`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`tuteur` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`tuteur` (
`id_tuteur` INT(3) NOT NULL AUTO_INCREMENT ,
`nom` VARCHAR(50) NOT NULL ,
`prenom` VARCHAR(50) NOT NULL ,
`agent_id_agent` INT(3) NOT NULL ,
INDEX `id_tuteur` (`id_tuteur` ASC) ,
PRIMARY KEY (`id_tuteur`, `agent_id_agent`) ,
INDEX `fk_tuteur_agent` (`agent_id_agent` ASC) ,
CONSTRAINT `fk_tuteur_agent`
FOREIGN KEY (`agent_id_agent` )
REFERENCES `dbgestforma`.`agent` (`id_agent` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `dbgestforma`.`session`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`session` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`session` (
`id_session` INT(3) NOT NULL AUTO_INCREMENT ,
`session` VARCHAR(25) NOT NULL ,
`intitule` VARCHAR(50) NOT NULL ,
`commentaires` TEXT NOT NULL ,
`nomcomplet` VARCHAR(50) NOT NULL ,
`horaire_matin` VARCHAR(17) NOT NULL ,
`horaire_apres_midi` VARCHAR(17) NOT NULL ,
`salle` VARCHAR(10) NOT NULL ,
`places` VARCHAR(3) NOT NULL ,
`code` VARCHAR(10) NOT NULL ,
`date_debut` VARCHAR(17) NOT NULL ,
`date_fin` VARCHAR(17) NOT NULL ,
`visible` CHAR(1) NULL DEFAULT NULL ,
`horaire_id_horaire` INT(3) NOT NULL ,
`agent_id_agent` INT(3) NOT NULL ,
`tuteur_id_tuteur` INT(3) NOT NULL ,
`salle_id_salle` INT(3) NOT NULL ,
`code_id_code` INT(5) NOT NULL ,
INDEX `id_session` (`id_session` ASC) ,
PRIMARY KEY (`horaire_id_horaire`, `agent_id_agent`, `tuteur_id_tuteur`, `salle_id_salle`, `code_id_code`) ,
INDEX `fk_session_horaire` (`horaire_id_horaire` ASC) ,
INDEX `fk_session_agent` (`agent_id_agent` ASC) ,
INDEX `fk_session_tuteur` (`tuteur_id_tuteur` ASC) ,
INDEX `fk_session_salle` (`salle_id_salle` ASC) ,
INDEX `fk_session_code` (`code_id_code` ASC) ,
CONSTRAINT `fk_session_horaire`
FOREIGN KEY (`horaire_id_horaire` )
REFERENCES `dbgestforma`.`horaire` (`id_horaire` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_session_agent`
FOREIGN KEY (`agent_id_agent` )
REFERENCES `dbgestforma`.`agent` (`id_agent` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_session_tuteur`
FOREIGN KEY (`tuteur_id_tuteur` )
REFERENCES `dbgestforma`.`tuteur` (`id_tuteur` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_session_salle`
FOREIGN KEY (`salle_id_salle` )
REFERENCES `dbgestforma`.`salle` (`id_salle` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_session_code`
FOREIGN KEY (`code_id_code` )
REFERENCES `dbgestforma`.`code` (`id_code` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `dbgestforma`.`evenement`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`evenement` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`evenement` (
`id_event` INT NOT NULL AUTO_INCREMENT ,
`libelle` VARCHAR(45) NULL ,
PRIMARY KEY (`id_event`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `dbgestforma`.`historique`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`historique` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`historique` (
`id_historique` INT NOT NULL AUTO_INCREMENT ,
`datetime_event` DATETIME NULL ,
`description` VARCHAR(100) NOT NULL ,
`tuteur_id_tuteur` INT(3) NOT NULL ,
`agent_id_agent` INT(3) NOT NULL ,
`salle_id_salle` INT(3) NOT NULL ,
`horaire_id_horaire` INT(3) NOT NULL ,
`code_id_code` INT(5) NOT NULL ,
`session_horaire_id_horaire` INT(3) NOT NULL ,
`session_agent_id_agent` INT(3) NOT NULL ,
`session_tuteur_id_tuteur` INT(3) NOT NULL ,
`session_salle_id_salle` INT(3) NOT NULL ,
`session_code_id_code` INT(5) NOT NULL ,
`event_id_event` INT NOT NULL ,
PRIMARY KEY (`id_historique`, `tuteur_id_tuteur`, `agent_id_agent`, `salle_id_salle`, `horaire_id_horaire`, `code_id_code`, `session_horaire_id_horaire`, `session_agent_id_agent`, `session_tuteur_id_tuteur`, `session_salle_id_salle`, `session_code_id_code`, `event_id_event`) ,
INDEX `fk_historique_tuteur` (`tuteur_id_tuteur` ASC) ,
INDEX `fk_historique_agent` (`agent_id_agent` ASC) ,
INDEX `fk_historique_salle` (`salle_id_salle` ASC) ,
INDEX `fk_historique_horaire` (`horaire_id_horaire` ASC) ,
INDEX `fk_historique_code` (`code_id_code` ASC) ,
INDEX `fk_historique_session` (`session_horaire_id_horaire` ASC, `session_agent_id_agent` ASC, `session_tuteur_id_tuteur` ASC, `session_salle_id_salle` ASC, `session_code_id_code` ASC) ,
INDEX `fk_historique_event` (`event_id_event` ASC) ,
CONSTRAINT `fk_historique_tuteur`
FOREIGN KEY (`tuteur_id_tuteur` )
REFERENCES `dbgestforma`.`tuteur` (`id_tuteur` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_historique_agent`
FOREIGN KEY (`agent_id_agent` )
REFERENCES `dbgestforma`.`agent` (`id_agent` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_historique_salle`
FOREIGN KEY (`salle_id_salle` )
REFERENCES `dbgestforma`.`salle` (`id_salle` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_historique_horaire`
FOREIGN KEY (`horaire_id_horaire` )
REFERENCES `dbgestforma`.`horaire` (`id_horaire` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_historique_code`
FOREIGN KEY (`code_id_code` )
REFERENCES `dbgestforma`.`code` (`id_code` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_historique_session`
FOREIGN KEY (`session_horaire_id_horaire` , `session_agent_id_agent` , `session_tuteur_id_tuteur` , `session_salle_id_salle` , `session_code_id_code` )
REFERENCES `dbgestforma`.`session` (`horaire_id_horaire` , `agent_id_agent` , `tuteur_id_tuteur` , `salle_id_salle` , `code_id_code` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_historique_event`
FOREIGN KEY (`event_id_event` )
REFERENCES `dbgestforma`.`evenement` (`id_event` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
ok
je vais modifier la structure pour ajouter la clé étrangère
je vous en dirai plus aujourd'hui
je voudrais solliciter vos avis sur mes structures qui me paraissent longs (excuse moi)
(il n'existe pas de pièces jointes??)
[code]
DROP DATABASE IF EXISTS `dbgestforma` ;
CREATE SCHEMA IF NOT EXISTS `dbgestforma` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
USE `dbgestforma`;
-- -----------------------------------------------------
-- Table `dbgestforma`.`agent`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`agent` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`agent` (
`id_agent` INT(3) NOT NULL AUTO_INCREMENT ,
`nom` VARCHAR(50) NOT NULL ,
`prenom` VARCHAR(50) NOT NULL ,
INDEX `id_agent` (`id_agent` ASC) ,
PRIMARY KEY (`id_agent`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `dbgestforma`.`code`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`code` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`code` (
`id_code` INT(5) NOT NULL AUTO_INCREMENT ,
`code` VARCHAR(10) NOT NULL ,
`nom` VARCHAR(50) NOT NULL ,
INDEX `id_code` (`id_code` ASC) ,
PRIMARY KEY (`id_code`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `dbgestforma`.`horaire`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`horaire` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`horaire` (
`id_horaire` INT(3) NOT NULL AUTO_INCREMENT ,
`matin` VARCHAR(15) NOT NULL ,
`apres_midi` VARCHAR(17) NOT NULL ,
INDEX `id_horaire` (`id_horaire` ASC) ,
PRIMARY KEY (`id_horaire`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `dbgestforma`.`salle`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`salle` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`salle` (
`id_salle` INT(3) NOT NULL AUTO_INCREMENT ,
`salle` VARCHAR(15) NOT NULL ,
`etage` VARCHAR(5) NOT NULL ,
`adresse` VARCHAR(50) NOT NULL ,
`adresse_bis` VARCHAR(50) NOT NULL ,
`code_postal` INT(6) NOT NULL ,
`ville` VARCHAR(25) NOT NULL ,
INDEX `id_salle` (`id_salle` ASC) ,
PRIMARY KEY (`id_salle`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `dbgestforma`.`tuteur`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`tuteur` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`tuteur` (
`id_tuteur` INT(3) NOT NULL AUTO_INCREMENT ,
`nom` VARCHAR(50) NOT NULL ,
`prenom` VARCHAR(50) NOT NULL ,
`agent_id_agent` INT(3) NOT NULL ,
INDEX `id_tuteur` (`id_tuteur` ASC) ,
PRIMARY KEY (`id_tuteur`, `agent_id_agent`) ,
INDEX `fk_tuteur_agent` (`agent_id_agent` ASC) ,
CONSTRAINT `fk_tuteur_agent`
FOREIGN KEY (`agent_id_agent` )
REFERENCES `dbgestforma`.`agent` (`id_agent` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `dbgestforma`.`session`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`session` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`session` (
`id_session` INT(3) NOT NULL AUTO_INCREMENT ,
`session` VARCHAR(25) NOT NULL ,
`intitule` VARCHAR(50) NOT NULL ,
`commentaires` TEXT NOT NULL ,
`nomcomplet` VARCHAR(50) NOT NULL ,
`horaire_matin` VARCHAR(17) NOT NULL ,
`horaire_apres_midi` VARCHAR(17) NOT NULL ,
`salle` VARCHAR(10) NOT NULL ,
`places` VARCHAR(3) NOT NULL ,
`code` VARCHAR(10) NOT NULL ,
`date_debut` VARCHAR(17) NOT NULL ,
`date_fin` VARCHAR(17) NOT NULL ,
`visible` CHAR(1) NULL DEFAULT NULL ,
`horaire_id_horaire` INT(3) NOT NULL ,
`agent_id_agent` INT(3) NOT NULL ,
`tuteur_id_tuteur` INT(3) NOT NULL ,
`salle_id_salle` INT(3) NOT NULL ,
`code_id_code` INT(5) NOT NULL ,
INDEX `id_session` (`id_session` ASC) ,
PRIMARY KEY (`horaire_id_horaire`, `agent_id_agent`, `tuteur_id_tuteur`, `salle_id_salle`, `code_id_code`) ,
INDEX `fk_session_horaire` (`horaire_id_horaire` ASC) ,
INDEX `fk_session_agent` (`agent_id_agent` ASC) ,
INDEX `fk_session_tuteur` (`tuteur_id_tuteur` ASC) ,
INDEX `fk_session_salle` (`salle_id_salle` ASC) ,
INDEX `fk_session_code` (`code_id_code` ASC) ,
CONSTRAINT `fk_session_horaire`
FOREIGN KEY (`horaire_id_horaire` )
REFERENCES `dbgestforma`.`horaire` (`id_horaire` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_session_agent`
FOREIGN KEY (`agent_id_agent` )
REFERENCES `dbgestforma`.`agent` (`id_agent` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_session_tuteur`
FOREIGN KEY (`tuteur_id_tuteur` )
REFERENCES `dbgestforma`.`tuteur` (`id_tuteur` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_session_salle`
FOREIGN KEY (`salle_id_salle` )
REFERENCES `dbgestforma`.`salle` (`id_salle` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_session_code`
FOREIGN KEY (`code_id_code` )
REFERENCES `dbgestforma`.`code` (`id_code` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `dbgestforma`.`evenement`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`evenement` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`evenement` (
`id_event` INT NOT NULL AUTO_INCREMENT ,
`libelle` VARCHAR(45) NULL ,
PRIMARY KEY (`id_event`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `dbgestforma`.`historique`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dbgestforma`.`historique` ;
CREATE TABLE IF NOT EXISTS `dbgestforma`.`historique` (
`id_historique` INT NOT NULL AUTO_INCREMENT ,
`datetime_event` DATETIME NULL ,
`description` VARCHAR(100) NOT NULL ,
`tuteur_id_tuteur` INT(3) NOT NULL ,
`agent_id_agent` INT(3) NOT NULL ,
`salle_id_salle` INT(3) NOT NULL ,
`horaire_id_horaire` INT(3) NOT NULL ,
`code_id_code` INT(5) NOT NULL ,
`session_horaire_id_horaire` INT(3) NOT NULL ,
`session_agent_id_agent` INT(3) NOT NULL ,
`session_tuteur_id_tuteur` INT(3) NOT NULL ,
`session_salle_id_salle` INT(3) NOT NULL ,
`session_code_id_code` INT(5) NOT NULL ,
`event_id_event` INT NOT NULL ,
PRIMARY KEY (`id_historique`, `tuteur_id_tuteur`, `agent_id_agent`, `salle_id_salle`, `horaire_id_horaire`, `code_id_code`, `session_horaire_id_horaire`, `session_agent_id_agent`, `session_tuteur_id_tuteur`, `session_salle_id_salle`, `session_code_id_code`, `event_id_event`) ,
INDEX `fk_historique_tuteur` (`tuteur_id_tuteur` ASC) ,
INDEX `fk_historique_agent` (`agent_id_agent` ASC) ,
INDEX `fk_historique_salle` (`salle_id_salle` ASC) ,
INDEX `fk_historique_horaire` (`horaire_id_horaire` ASC) ,
INDEX `fk_historique_code` (`code_id_code` ASC) ,
INDEX `fk_historique_session` (`session_horaire_id_horaire` ASC, `session_agent_id_agent` ASC, `session_tuteur_id_tuteur` ASC, `session_salle_id_salle` ASC, `session_code_id_code` ASC) ,
INDEX `fk_historique_event` (`event_id_event` ASC) ,
CONSTRAINT `fk_historique_tuteur`
FOREIGN KEY (`tuteur_id_tuteur` )
REFERENCES `dbgestforma`.`tuteur` (`id_tuteur` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_historique_agent`
FOREIGN KEY (`agent_id_agent` )
REFERENCES `dbgestforma`.`agent` (`id_agent` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_historique_salle`
FOREIGN KEY (`salle_id_salle` )
REFERENCES `dbgestforma`.`salle` (`id_salle` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_historique_horaire`
FOREIGN KEY (`horaire_id_horaire` )
REFERENCES `dbgestforma`.`horaire` (`id_horaire` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_historique_code`
FOREIGN KEY (`code_id_code` )
REFERENCES `dbgestforma`.`code` (`id_code` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_historique_session`
FOREIGN KEY (`session_horaire_id_horaire` , `session_agent_id_agent` , `session_tuteur_id_tuteur` , `session_salle_id_salle` , `session_code_id_code` )
REFERENCES `dbgestforma`.`session` (`horaire_id_horaire` , `agent_id_agent` , `tuteur_id_tuteur` , `salle_id_salle` , `code_id_code` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_historique_event`
FOREIGN KEY (`event_id_event` )
REFERENCES `dbgestforma`.`evenement` (`id_event` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
[/code]