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 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
| -- MySQL Script generated by MySQL Workbench
-- Sat Jan 18 21:39:53 2020
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Table `PATIENT`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `PATIENT` (
`patientId` INT NOT NULL AUTO_INCREMENT,
`patientMatricule` INT NOT NULL,
`patientNom` VARCHAR(48) NOT NULL,
`patientPrenom` VARCHAR(48) NOT NULL,
`patientDateNaissance` DATE NOT NULL,
`patientAdresse` VARCHAR(48) NOT NULL,
`patientProfession` VARCHAR(45) NOT NULL,
`patientNumTelephone` VARCHAR(45) NULL,
`patientEmail` VARCHAR(45) NULL,
PRIMARY KEY (`patientId`),
UNIQUE INDEX `PATIENT_MAT_AK` (`patientMatricule` ASC) VISIBLE);
-- -----------------------------------------------------
-- Table `FACTURE`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `FACTURE` (
`patientId` INT NOT NULL,
`factureId` INT(5) NOT NULL,
`factureNumero` CHAR(8) NOT NULL,
`factureDate` DATE NOT NULL,
`factureMontant` INT NOT NULL,
PRIMARY KEY (`patientId`, `factureId`),
UNIQUE INDEX `FACTURE_NUMERO_AK` (`factureNumero` ASC) VISIBLE,
CONSTRAINT `FACTURE_PATIENT_FK`
FOREIGN KEY (`patientId`)
REFERENCES `PATIENT` (`patientId`));
-- -----------------------------------------------------
-- Table `CONSULTATION`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `CONSULTATION` (
`patientId` INT NOT NULL,
`consultationId` INT NOT NULL AUTO_INCREMENT,
`consultationDate` DATE NOT NULL,
PRIMARY KEY (`patientId`, `consultationId`),
UNIQUE INDEX `CONSULTATION_DATE_AK` (`patientId` ASC, `consultationDate` ASC) VISIBLE,
CONSTRAINT `CONSULTATION_PATIENT_FK`
FOREIGN KEY (`patientId`)
REFERENCES `PATIENT` (`patientId`));
-- -----------------------------------------------------
-- Table `CONSULTATION_PAYANTE`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `CONSULTATION_PAYANTE` (
`patientId` INT NOT NULL,
`consultationId` INT NOT NULL,
`factureId` INT NOT NULL,
PRIMARY KEY (`patientId`, `consultationId`),
UNIQUE INDEX `CONSULTATION_PAYANTE_FACTURE_AK` (`patientId` ASC, `factureId` ASC) VISIBLE,
CONSTRAINT `CONSULTATION_PAYANTE_CONSULTATION_FK`
FOREIGN KEY (`patientId` , `consultationId`)
REFERENCES `CONSULTATION` (`patientId` , `consultationId`)
ON DELETE CASCADE,
CONSTRAINT `CONSULTATION_PAYANTE_FACTURE_FK`
FOREIGN KEY (`patientId` , `factureId`)
REFERENCES `FACTURE` (`patientId` , `factureId`));
-- -----------------------------------------------------
-- Table `TRAITEMENT`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `TRAITEMENT` (
`patientId` INT NOT NULL,
`consultationId` INT NOT NULL,
`traitementId` INT NOT NULL AUTO_INCREMENT,
`traitementDescription` VARCHAR(45) NOT NULL,
PRIMARY KEY (`patientId`, `traitementId`),
INDEX `TRAITEMENT_CONSULTATION_FK` (`patientId` ASC, `consultationId` ASC) VISIBLE,
CONSTRAINT `TRAITEMENT_CONSULTATION_FK`
FOREIGN KEY (`patientId` , `consultationId`)
REFERENCES `CONSULTATION` (`patientId` , `consultationId`));
-- -----------------------------------------------------
-- Table `TRAITEMENT_PAYANT`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `TRAITEMENT_PAYANT` (
`patientId` INT NOT NULL,
`traitementId` INT NOT NULL,
`factureId` INT NOT NULL,
PRIMARY KEY (`patientId`, `traitementId`),
UNIQUE INDEX `TRAITEMENT_PAYANT_FACTURE_AK` (`patientId` ASC, `factureId` ASC) VISIBLE,
CONSTRAINT `TRAITEMENT_PAYANT_TRAITEMENT_FK`
FOREIGN KEY (`patientId` , `traitementId`)
REFERENCES `TRAITEMENT` (`patientId` , `traitementId`)
ON DELETE CASCADE,
CONSTRAINT `TRAITEMENT_PAYANT_FACTURE_FK`
FOREIGN KEY (`patientId` , `factureId`)
REFERENCES `FACTURE` (`patientId` , `factureId`));
-- -----------------------------------------------------
-- Table `INTERVENTION`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `INTERVENTION` (
`patientId` INT NOT NULL,
`interventionId` INT NOT NULL AUTO_INCREMENT,
`traitementId` INT NOT NULL,
`interventionDate` DATE NOT NULL,
`interventionDescription` VARCHAR(45) NOT NULL,
PRIMARY KEY (`patientId`, `interventionId`),
UNIQUE INDEX `INTERVENTION_DATE_AK` (`patientId` ASC, `interventionDate` ASC) VISIBLE,
INDEX `INTERVENTION_TRAITEMENT_FK` (`patientId` ASC, `traitementId` ASC) VISIBLE,
CONSTRAINT `INTERVENTION_TRAITEMENT_FK`
FOREIGN KEY (`patientId` , `traitementId`)
REFERENCES `TRAITEMENT` (`patientId` , `traitementId`));
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; |
Partager