-
Notifications
You must be signed in to change notification settings - Fork 1
/
create_tables_bdd2.sql
186 lines (168 loc) · 4.8 KB
/
create_tables_bdd2.sql
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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
CREATE TABLE Club(
club_id VARCHAR(10),
nom VARCHAR(50) NOT NULL,
adresse VARCHAR(100),
annee_de_creation SMALLINT,
telephone INT,
faxe INT,
email VARCHAR(50),
couleur_principale VARCHAR(50),
couleur_réserve VARCHAR(50),
PRIMARY KEY(club_id)
);
CREATE TABLE Equipe(
club_id VARCHAR(10),
categorie VARCHAR(50),
PRIMARY KEY(club_id, categorie),
FOREIGN KEY(club_id) REFERENCES Club(club_id)
);
CREATE TABLE Entraineur(
personne_id INT AUTO_INCREMENT,
nom VARCHAR(50),
prenom VARCHAR(50),
date_de_naissance DATE,
lieu_de_naissance VARCHAR(50),
nationalite VARCHAR(50),
profession VARCHAR(50) NOT NULL,
PRIMARY KEY(personne_id)
);
CREATE TABLE Dirigeant(
personne_id INT AUTO_INCREMENT,
nom VARCHAR(50),
prenom VARCHAR(50),
date_de_naissance DATE,
lieu_de_naissance VARCHAR(50),
nationalite VARCHAR(50),
profession VARCHAR(50) NOT NULL,
PRIMARY KEY(personne_id)
);
CREATE TABLE Saison(
saison VARCHAR(50),
PRIMARY KEY(saison)
);
CREATE TABLE Arbitre(
personne_id INT AUTO_INCREMENT,
nom VARCHAR(50),
prenom VARCHAR(50),
date_de_naissance DATE,
lieu_de_naissance VARCHAR(50),
nationalite VARCHAR(50),
PRIMARY KEY(personne_id)
);
CREATE TABLE Region(
region VARCHAR(50),
PRIMARY KEY(region)
);
CREATE TABLE Joueur(
personne_id INT AUTO_INCREMENT,
nom VARCHAR(50),
prenom VARCHAR(50),
date_de_naissance DATE,
lieu_de_naissance VARCHAR(50),
nationalite VARCHAR(50),
taille SMALLINT,
poids SMALLINT,
PRIMARY KEY(personne_id)
);
CREATE TABLE Wilaya(
wilaya VARCHAR(50),
region VARCHAR(50) NOT NULL,
PRIMARY KEY(wilaya),
FOREIGN KEY(region) REFERENCES Region(region)
);
CREATE TABLE Stade(
wilaya VARCHAR(50),
stade VARCHAR(50),
capacite VARCHAR(50),
PRIMARY KEY(wilaya, stade),
FOREIGN KEY(wilaya) REFERENCES Wilaya(wilaya)
);
CREATE TABLE Division(
wilaya VARCHAR(50),
division VARCHAR(50),
PRIMARY KEY(wilaya, division),
FOREIGN KEY(wilaya) REFERENCES Wilaya(wilaya)
);
CREATE TABLE Groupe(
wilaya VARCHAR(50),
division VARCHAR(50),
groupe SMALLINT,
PRIMARY KEY(wilaya, division, groupe),
FOREIGN KEY(wilaya, division) REFERENCES Division(wilaya, division)
);
CREATE TABLE Grouper(
club_id VARCHAR(10),
saison VARCHAR(50),
wilaya VARCHAR(50) NOT NULL,
division VARCHAR(50) NOT NULL,
groupe SMALLINT NOT NULL,
PRIMARY KEY(club_id, saison),
FOREIGN KEY(club_id) REFERENCES Club(club_id),
FOREIGN KEY(saison) REFERENCES Saison(saison),
FOREIGN KEY(wilaya, division, groupe) REFERENCES Groupe(wilaya, division, groupe)
);
CREATE TABLE Diriger(
personne_id INT,
saison VARCHAR(50),
club_id VARCHAR(10) NOT NULL,
PRIMARY KEY(personne_id, saison),
FOREIGN KEY(personne_id) REFERENCES Dirigeant(personne_id),
FOREIGN KEY(saison) REFERENCES Saison(saison),
FOREIGN KEY(club_id) REFERENCES Club(club_id)
);
CREATE TABLE Entrainer(
personne_id INT,
saison VARCHAR(50),
club_id VARCHAR(10) NOT NULL,
categorie VARCHAR(50) NOT NULL,
PRIMARY KEY(personne_id, saison),
FOREIGN KEY(personne_id) REFERENCES Entraineur(personne_id),
FOREIGN KEY(saison) REFERENCES Saison(saison),
FOREIGN KEY(club_id, categorie) REFERENCES Equipe(club_id, categorie)
);
CREATE TABLE Jouer(
personne_id INT,
saison VARCHAR(50),
poste VARCHAR(50),
club_id VARCHAR(10) NOT NULL,
categorie VARCHAR(50) NOT NULL,
numero SMALLINT,
PRIMARY KEY(personne_id, saison),
FOREIGN KEY(personne_id) REFERENCES Joueur(personne_id),
FOREIGN KEY(saison) REFERENCES Saison(saison),
FOREIGN KEY(club_id, categorie) REFERENCES Equipe(club_id, categorie)
);
CREATE TABLE Rencontre(
rencontre_id INT AUTO_INCREMENT,
saison VARCHAR(50),
journee INT NOT NULL,
date_rencontre DATE,
club_id_a VARCHAR(10) NOT NULL,
categorie_a VARCHAR(50) NOT NULL,
club_id_b VARCHAR(10) NOT NULL,
categorie_b VARCHAR(50) NOT NULL,
wilaya VARCHAR(50) NOT NULL,
stade VARCHAR(50) NOT NULL,
check(categorie_a=categorie_b),
PRIMARY KEY(rencontre_id),
FOREIGN KEY(saison) REFERENCES Saison(saison),
FOREIGN KEY(club_id_a, categorie_a) REFERENCES Equipe(club_id, categorie),
FOREIGN KEY(wilaya, stade) REFERENCES Stade(wilaya, stade),
FOREIGN KEY(club_id_b, categorie_b) REFERENCES Equipe(club_id, categorie)
);
CREATE TABLE But(
rencontre_id INT,
personne_id INT,
minute_but INT,
PRIMARY KEY(rencontre_id, personne_id, minute_but),
FOREIGN KEY(rencontre_id) REFERENCES Rencontre(rencontre_id),
FOREIGN KEY(personne_id) REFERENCES Joueur(personne_id)
);
CREATE TABLE Arbitrer(
rencontre_id INT,
personne_id INT,
poste VARCHAR(50),
PRIMARY KEY(rencontre_id, personne_id),
FOREIGN KEY(rencontre_id) REFERENCES Rencontre(rencontre_id),
FOREIGN KEY(personne_id) REFERENCES Arbitre(personne_id)
);