| 12
 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| |