1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
   |  
DROP TABLE IF EXISTS `Acces`, `StatApplication`, `BaseAssoc`, `VersionApplication`, `BaseDonnee`, `Poste`, `Matrice`, `Application`, `Utilisateur`|
 
CREATE TABLE IF NOT EXISTS `Application` (
  `numApplication` SMALLINT(5) UNSIGNED AUTO_INCREMENT COMMENT 'Identifiant d''une application dans la base de donnée.',
  `nomApplication` VARCHAR(255) NOT NULL COMMENT 'Nom d''une application.',
  PRIMARY KEY (`numApplication`),
  UNIQUE INDEX (`nomApplication`)
) COMMENT 'Table contenant toutes les application (sans leurs version).' ENGINE=InnoDB  DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `VersionApplication` (
  `numApplication` SMALLINT(5) UNSIGNED NOT NULL COMMENT 'Numéro d''une application dans la base de donnée.',
  `versionApplication` VARCHAR(255) NOT NULL COMMENT 'Version d''une application.',
  `tailleApplication` BIGINT NOT NULL COMMENT 'Taille d''une application.',
  `nbUtilisateur` INT(10) UNSIGNED DEFAULT 0 COMMENT 'Nombre d''utilisateurs d''une version d''aplication.',
  PRIMARY KEY (`numApplication`, `versionApplication`),
  INDEX (`numApplication`),
  FOREIGN KEY (`numApplication`) REFERENCES `Application`(`numApplication`) ON UPDATE CASCADE ON DELETE CASCADE,
  INDEX (`versionApplication`(255))
) COMMENT 'Table contenant la corespondance Application/VersionApplication ainsi que la taille d''une application.' ENGINE=InnoDB DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `StatApplication` (
  `numApplication` SMALLINT(5) UNSIGNED NOT NULL COMMENT 'Identifiant d''une application dans la base de donnée.',
  `versionApplication` VARCHAR(255) NOT NULL COMMENT 'Version d''une application.',
  `date` DATE NOT NULL COMMENT 'Date de statistics.',
  `nbAcces` INT(10) UNSIGNED COMMENT 'Nombre d''accès total pour une version d''application à une date donnée.',
  PRIMARY KEY (`numApplication`, `versionApplication`, `date`),
  INDEX (`numApplication`),
  FOREIGN KEY (`numApplication`) REFERENCES `Application`(`numApplication`) ON UPDATE CASCADE ON DELETE CASCADE,
  FOREIGN KEY (`versionApplication`) REFERENCES `VersionApplication`(`versionApplication`)
) COMMENT 'Table contenant les statistics d''accès pour les applications.' ENGINE=InnoDB DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `BaseDonnee` (
  `numBase` INT(10) UNSIGNED AUTO_INCREMENT COMMENT 'Identifiant d''une base de donnée dans la base de donnée.',
  `pathBase` VARCHAR(255) DEFAULT NULL COMMENT 'Chemin d''une base de donnée.',
  `tailleBase` BIGINT DEFAULT NULL COMMENT 'Taille d''une base de donnée.',
  `uniteLogique` VARCHAR(255) DEFAULT NULL COMMENT 'Unité logique d''une base de donnée.',
  PRIMARY KEY (`numBase`)
) COMMENT 'Table contenant les multiples bases de données utilisées par les différentes applications.' ENGINE=InnoDB DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `BaseAssoc` (
  `numApplication` SMALLINT(5) UNSIGNED NOT NULL COMMENT 'Identifiant d''une application dans la base de donnée.',
  `numBaseAssoc` INT(10) UNSIGNED NOT NULL COMMENT 'Identifiant d''une base de donnée dans la base de donnée.',
  PRIMARY KEY  (`numApplication`,`numBaseAssoc`),
  INDEX (`numApplication`),
  FOREIGN KEY (`numApplication`) REFERENCES `Application`(`numApplication`) ON UPDATE CASCADE ON DELETE CASCADE,
INDEX (`numBaseAssoc`),
  FOREIGN KEY (`numBaseAssoc`) REFERENCES `BaseDonnee`(`numBase`) ON UPDATE CASCADE ON DELETE CASCADE
) COMMENT 'Table contenant la correspondance Application/BaseDonnee.' ENGINE=InnoDB DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `matrice` (
  `numMatrice` SMALLINT(5) UNSIGNED AUTO_INCREMENT COMMENT 'Identifiant d''une matrice dans la base de donnée.',
  `socleTechnique` VARCHAR(255) NOT NULL COMMENT 'Socle technique d''une matrice.',
  PRIMARY KEY  (`numMatrice`),
  UNIQUE INDEX (`socleTechnique`)
) COMMENT 'Table contenant les différentes matrices' ENGINE=InnoDB DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `poste` (
  `numPoste` INT(10) UNSIGNED AUTO_INCREMENT COMMENT 'Identifiant d''un poste dans la base de donnée.',
  `ip` VARCHAR(15) NOT NULL COMMENT 'Adresse IP d''un poste.',
  `numMatrice` SMALLINT(5) UNSIGNED NOT NULL COMMENT 'Numéro de la matrice d''un poste.',
  PRIMARY KEY (`numPoste`),
  INDEX (`numMatrice`),
  FOREIGN KEY (`numMatrice`) REFERENCES `Matrice`(`numMatrice`) ON UPDATE CASCADE ON DELETE CASCADE
) COMMENT 'Table contenant les informations sur les différents postes.' ENGINE=InnoDB DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `Utilisateur` (
  `numUtilisateur` INT(10) UNSIGNED AUTO_INCREMENT COMMENT 'Identifiant d''un utilisateur dans la base de donnée.',
  `login` VARCHAR(255) NOT NULL COMMENT 'Login d''un utilisateur.',
  PRIMARY KEY (`numUtilisateur`),
  UNIQUE INDEX (`login`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `acces` (
  `numApplication` SMALLINT(5) UNSIGNED NOT NULL COMMENT 'Identifiant de l''application ayant effectué un accès.',
  `versionApplication` VARCHAR(255) NOT NULL COMMENT 'Version de l''aplication ayant effectué un accès.',
  `numUtilisateur` int(10) UNSIGNED NOT NULL COMMENT 'Identifiant de l''utilisateur de l''application ayant effectuer un accès.',
  `numPoste` INT(10) UNSIGNED NOT NULL COMMENT 'Identifiant du poste où l''application est utilisé.',
  `date` DATETIME NOT NULL COMMENT 'Date d''un accès.',
  PRIMARY KEY  (`numApplication`,`versionApplication`,`numUtilisateur`,`numPoste`,`date`),
  INDEX (`numApplication`),
  FOREIGN KEY (`numApplication`) REFERENCES `Application`(`numApplication`) ON UPDATE CASCADE ON DELETE CASCADE,
  FOREIGN KEY (`versionApplication`) REFERENCES `VersionApplication`(`versionApplication`) ON UPDATE CASCADE ON DELETE CASCADE,
  INDEX (`numUtilisateur`),
  FOREIGN KEY (`numUtilisateur`) REFERENCES `Utilisateur`(`numUtilisateur`) ON UPDATE CASCADE ON DELETE CASCADE,
  INDEX (`numPoste`),
  FOREIGN KEY (`numPoste`) REFERENCES `Poste`(`numPoste`) ON UPDATE CASCADE ON DELETE CASCADE
) COMMENT 'Table contenant tous les accès effectué par les différentes applications.' ENGINE=InnoDB DEFAULT CHARSET=utf8|  | 
Partager