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 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
| CREATE TABLE ville
(
IdVille TINYINT(3) NOT NULL AUTO_INCREMENT,
NomVille VARCHAR(50) NOT NULL,
UNIQUE NomVille(NomVille),
PRIMARY KEY(IdVille)
)ENGINE=InnoDB;
CREATE TABLE direction
(
IdDirect CHAR(10) NOT NULL,
NomDirect VARCHAR(255) NOT NULL,
SigleDirect CHAR(20) NOT NULL,
IdVille TINYINT(3) NOT NULL ,
PRIMARY KEY (IdDirect),
FOREIGN KEY(IdVille) REFERENCES ville (IdVille)
ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=InnoDB;
CREATE TABLE service
(
IdService CHAR(10) NOT NULL,
NomService VARCHAR(255) NOT NULL,
SigleService CHAR(20) NOT NULL,
TelService DECIMAL(8,0) NOT NULL,
EmailService VARCHAR(100) NOT NULL,
IdDirect CHAR(10) NOT NULL,
PRIMARY KEY (IdService),
FOREIGN KEY(IdDirect) REFERENCES direction(IdDirect)
ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=InnoDB;
CREATE TABLE agent
(
MatAgent INT NOT NULL ,
NomAgent VARCHAR(50) NOT NULL ,
PrenAgent VARCHAR(100) NOT NULL ,
TelAgent DECIMAL(8,0) NOT NULL,
SexeAgent ENUM('homme','femme') NOT NULL,
EmailAgent VARCHAR(50) DEFAULT NULL ,
DateNaisAgent DATE DEFAULT NULL,
CodePostAgent CHAR(10) DEFAULT NULL,
BoitePostAgent CHAR(10) DEFAULT NULL,
IdService CHAR(10) NOT NULL ,
IdVille TINYINT(3) NOT NULL,
FOREIGN KEY(IdVille) REFERENCES ville (IdVille)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(IdService) REFERENCES service(IdService)
ON DELETE CASCADE ON UPDATE CASCADE,
PRIMARY KEY(MatAgent),
INDEX index_nom_prenom_ag (NomAgent,PrenAgent) /*pour les recherches */
)ENGINE=InnoDB;
CREATE TABLE correspondante
(
CodeCoresp BIGINT(10) NOT NULL AUTO_INCREMENT,
NomCoresp VARCHAR(50) NOT NULL,
StatutCoresp ENUM('expediteur','destinataire') NOT NULL,
IdVille TINYINT(3) NOT NULL,
FOREIGN KEY(IdVille) REFERENCES ville (IdVille)
ON DELETE CASCADE ON UPDATE CASCADE,
PRIMARY KEY(CodeCoresp)
)ENGINE=InnoDB;
CREATE TABLE personne_morale
(
CodeCoresp BIGINT(10) NOT NULL,
SiglePers CHAR(20) NOT NULL,
RaisonSocial VARCHAR(255) NOT NULL,
FOREIGN KEY(CodeCoresp) REFERENCES correspondante(CodeCoresp)
ON DELETE CASCADE ON UPDATE CASCADE,
PRIMARY KEY(CodeCoresp)
)ENGINE=InnoDB;
CREATE TABLE personne_physique
(
CodeCoresp BIGINT(10) NOT NULL,
PrenPers VARCHAR(255) NOT NULL,
EmailPers VARCHAR(100) DEFAULT NULL,
DateNaisPers DATE DEFAULT NULL,
SexePers ENUM('homme','femme') NOT NULL,
TelPers DECIMAL(8,0) NOT NULL,
BoitePostPers CHAR(10) DEFAULT NULL,
CodePostPers CHAR(10) DEFAULT NULL,
FOREIGN KEY(CodeCoresp) REFERENCES correspondante(CodeCoresp)
ON DELETE CASCADE ON UPDATE CASCADE,
PRIMARY KEY(CodeCoresp)
)ENGINE=InnoDB;
CREATE TABLE courrier
(
NumCour BIGINT(10) NOT NULL AUTO_INCREMENT,
ObjetCour VARCHAR(255) NOT NULL,
DateEcritureCour DATE NOT NULL,
annee YEAR NOT NULL,
MatAgent INT NOT NULL ,
CodeCoresp BIGINT(10) NOT NULL ,
FOREIGN KEY(CodeCoresp) REFERENCES correspondante(CodeCoresp)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(MatAgent) REFERENCES agent(MatAgent)
ON DELETE CASCADE ON UPDATE CASCADE,
PRIMARY KEY (NumCour)
)ENGINE=InnoDB;
CREATE TABLE courrierDepart
(
NumOrdreCourDep CHAR(10) NOT NULL ,
DateExpedCourDep DATE NOT NULL,
NumCourServDest CHAR(10) DEFAULT NULL,
NatureCourDep ENUM('ordinaire','special') DEFAULT "ordinaire",
NumCour BIGINT(10) NOT NULL,
FOREIGN KEY (NumCour) REFERENCES courrier (NumCour)
ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE NumCour(NumCour),
PRIMARY KEY (NumOrdreCourDep)
)ENGINE=InnoDB;
CREATE TABLE courrierArrive
(
NumOrdreCourArriv CHAR(10) NOT NULL ,
DateArrivCourServCo DATE NOT NULL,
NumOrgCourArriv CHAR(10) DEFAULT NULL,
DateRetCourServCo DATE DEFAULT NULL,
DateRecepServDest DATE DEFAULT NULL,
NumCour BIGINT(10) NOT NULL,
IdDirect CHAR(10) DEFAULT NULL,
FOREIGN KEY (NumCour) REFERENCES courrier (NumCour)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(IdDirect) REFERENCES direction(IdDirect)
ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE NumCour(NumCour),
PRIMARY KEY (NumOrdreCourArriv)
)ENGINE=InnoDB;
CREATE TABLE repondre
(
NumOrdreCourArriv CHAR(10) NOT NULL ,
NumOrdreCourDep CHAR(10) NOT NULL ,
FOREIGN KEY(NumOrdreCourArriv) REFERENCES courrierArrive(NumOrdreCourArriv)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(NumOrdreCourDep) REFERENCES courrierDepart(NumOrdreCourDep)
ON DELETE CASCADE ON UPDATE CASCADE,
PRIMARY KEY(NumOrdreCourArriv)
)ENGINE=InnoDB; |
Partager