-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschema.sql
313 lines (289 loc) · 10.4 KB
/
schema.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
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
--
-- File generated with SQLiteStudio v3.4.3 on sá. feb. 11 11:43:19 2023
--
-- Text encoding used: UTF-8
--
PRAGMA foreign_keys = off;
BEGIN TRANSACTION;
-- Table: circuits
DROP TABLE IF EXISTS circuits;
CREATE TABLE IF NOT EXISTS circuits
( id VARCHAR(255) NOT NULL COLLATE NOCASE PRIMARY KEY
, name VARCHAR(255) NOT NULL COLLATE NOCASE
, fullName VARCHAR(255) NOT NULL COLLATE NOCASE
, previousNames VARCHAR(255) COLLATE NOCASE
, type VARCHAR(255) NOT NULL COLLATE NOCASE
, placeName VARCHAR(255) NOT NULL COLLATE NOCASE
, countryId VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES countries(alpha2Code)
, latitude DECIMAL(10,6)
, longitude DECIMAL(10,6)
);
-- Table: companies
DROP TABLE IF EXISTS companies;
CREATE TABLE IF NOT EXISTS companies
( id VARCHAR(255) NOT NULL COLLATE NOCASE PRIMARY KEY
, name VARCHAR(255) NOT NULL COLLATE NOCASE
, fullName VARCHAR(255) NOT NULL COLLATE NOCASE
, countryId VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES countries(alpha2Code)
, founder VARCHAR(255) COLLATE NOCASE
, yearFounded INTEGER
);
-- Table: constructors
DROP TABLE IF EXISTS constructors;
CREATE TABLE IF NOT EXISTS constructors
( id VARCHAR(255) NOT NULL COLLATE NOCASE PRIMARY KEY
, name VARCHAR(255) NOT NULL COLLATE NOCASE
, fullName VARCHAR(255) NOT NULL COLLATE NOCASE
, countryId VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES countries(alpha2Code)
, wikiUrl VARCHAR(255) COLLATE NOCASE
, summary VARCHAR(5000) COLLATE NOCASE
, photo VARCHAR(255) COLLATE NOCASE
);
-- Table: previousNextConstructors
DROP TABLE IF EXISTS previousNextConstructors;
CREATE TABLE IF NOT EXISTS previousNextConstructors
( constructorId VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES constructors(id)
, parentConstructorId VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES constructors(id)
, yearFrom INTEGER NOT NULL
, yearTo INTEGER
, PRIMARY KEY (constructorId, parentConstructorId, yearFrom)
);
-- Table: countries
DROP TABLE IF EXISTS countries;
CREATE TABLE IF NOT EXISTS countries
( alpha2Code VARCHAR(2) NOT NULL COLLATE NOCASE PRIMARY KEY
, alpha3Code VARCHAR(3) NOT NULL COLLATE NOCASE UNIQUE
, region VARCHAR(255) NOT NULL COLLATE NOCASE
, subregion VARCHAR(255) COLLATE NOCASE
);
-- Table: countriesOfficialNames
DROP TABLE IF EXISTS countriesOfficialNames;
CREATE TABLE IF NOT EXISTS countriesOfficialNames
( countryId VARCHAR(255) PRIMARY KEY NOT NULL COLLATE NOCASE REFERENCES countries(alpha2Code)
, en VARCHAR(255) COLLATE NOCASE NOT NULL
, ces VARCHAR(255) COLLATE NOCASE
, deu VARCHAR(255) COLLATE NOCASE
, est VARCHAR(255) COLLATE NOCASE
, fin VARCHAR(255) COLLATE NOCASE
, fra VARCHAR(255) COLLATE NOCASE
, hrv VARCHAR(255) COLLATE NOCASE
, hun VARCHAR(255) COLLATE NOCASE
, ita VARCHAR(255) COLLATE NOCASE
, jpn VARCHAR(255) COLLATE NOCASE
, kor VARCHAR(255) COLLATE NOCASE
, nld VARCHAR(255) COLLATE NOCASE
, per VARCHAR(255) COLLATE NOCASE
, pol VARCHAR(255) COLLATE NOCASE
, por VARCHAR(255) COLLATE NOCASE
, rus VARCHAR(255) COLLATE NOCASE
, slk VARCHAR(255) COLLATE NOCASE
, spa VARCHAR(255) COLLATE NOCASE
, swe VARCHAR(255) COLLATE NOCASE
, urd VARCHAR(255) COLLATE NOCASE
, zho VARCHAR(255) COLLATE NOCASE
, cym VARCHAR(255) COLLATE NOCASE
);
-- Table: countriesCommonNames
DROP TABLE IF EXISTS countriesCommonNames;
CREATE TABLE IF NOT EXISTS countriesCommonNames
( countryId VARCHAR(255) PRIMARY KEY NOT NULL COLLATE NOCASE REFERENCES countries(alpha2Code)
, en VARCHAR(255) COLLATE NOCASE NOT NULL
, ces VARCHAR(255) COLLATE NOCASE
, deu VARCHAR(255) COLLATE NOCASE
, est VARCHAR(255) COLLATE NOCASE
, fin VARCHAR(255) COLLATE NOCASE
, fra VARCHAR(255) COLLATE NOCASE
, hrv VARCHAR(255) COLLATE NOCASE
, hun VARCHAR(255) COLLATE NOCASE
, ita VARCHAR(255) COLLATE NOCASE
, jpn VARCHAR(255) COLLATE NOCASE
, kor VARCHAR(255) COLLATE NOCASE
, nld VARCHAR(255) COLLATE NOCASE
, per VARCHAR(255) COLLATE NOCASE
, pol VARCHAR(255) COLLATE NOCASE
, por VARCHAR(255) COLLATE NOCASE
, rus VARCHAR(255) COLLATE NOCASE
, slk VARCHAR(255) COLLATE NOCASE
, spa VARCHAR(255) COLLATE NOCASE
, swe VARCHAR(255) COLLATE NOCASE
, urd VARCHAR(255) COLLATE NOCASE
, zho VARCHAR(255) COLLATE NOCASE
, cym VARCHAR(255) COLLATE NOCASE
);
-- Table: drivers
DROP TABLE IF EXISTS drivers;
CREATE TABLE IF NOT EXISTS drivers
( id VARCHAR(255) NOT NULL COLLATE NOCASE PRIMARY KEY
, name VARCHAR(255) NOT NULL COLLATE NOCASE
, firstName VARCHAR(255) NOT NULL COLLATE NOCASE
, lastName VARCHAR(255) NOT NULL COLLATE NOCASE
, fullName VARCHAR(255) NOT NULL COLLATE NOCASE
, abbreviation VARCHAR(3) NOT NULL COLLATE NOCASE
, permanentNumber VARCHAR(2) COLLATE NOCASE
, gender VARCHAR(255) NOT NULL COLLATE NOCASE
, dateOfBirth VARCHAR(11) NOT NULL
, dateOfDeath VARCHAR(11)
, placeOfBirth VARCHAR(255) NOT NULL COLLATE NOCASE
, countryOfBirthCountryId VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES countries(alpha2Code)
, nationalityCountryId VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES countries(alpha2Code)
, secondNationalityCountryId VARCHAR(255) COLLATE NOCASE REFERENCES countries(alpha2Code)
, photo VARCHAR(10000)
);
-- Table: driversFamilyRelationships
DROP TABLE IF EXISTS driversFamilyRelationships;
CREATE TABLE IF NOT EXISTS driversFamilyRelationships
( driverA VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES drivers(id)
, driverB VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES drivers(id)
, AisToB VARCHAR(255) NOT NULL COLLATE NOCASE
, PRIMARY KEY (driverA, driverB, AisToB)
);
-- Table: engineManufacturers
DROP TABLE IF EXISTS engineManufacturers;
CREATE TABLE IF NOT EXISTS engineManufacturers
( id VARCHAR(255) NOT NULL COLLATE NOCASE PRIMARY KEY
, name VARCHAR(255) NOT NULL COLLATE NOCASE
, countryId VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES countries(alpha2Code)
);
-- Table: tyreManufacturers
DROP TABLE IF EXISTS tyreManufacturers;
CREATE TABLE IF NOT EXISTS tyreManufacturers
( id VARCHAR(255) NOT NULL COLLATE NOCASE PRIMARY KEY
, name VARCHAR(255) NOT NULL COLLATE NOCASE
, countryId VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES countries(alpha2Code)
, primaryColor VARCHAR(10) NOT NULL COLLATE NOCASE
, secondaryColor VARCHAR(10) NOT NULL COLLATE NOCASE
);
-- Table: grandsPrix
DROP TABLE IF EXISTS grandsPrix;
CREATE TABLE IF NOT EXISTS grandsPrix
( id VARCHAR(255) NOT NULL COLLATE NOCASE PRIMARY KEY
, name VARCHAR(255) NOT NULL COLLATE NOCASE
, fullName VARCHAR(255) NOT NULL COLLATE NOCASE
, shortName VARCHAR(255) NOT NULL COLLATE NOCASE
, countryId VARCHAR(255) COLLATE NOCASE REFERENCES countries(alpha2Code)
);
-- Table: sessionEntrants
DROP TABLE IF EXISTS sessionEntrants;
CREATE TABLE IF NOT EXISTS sessionEntrants
( id VARCHAR(255) NOT NULL COLLATE NOCASE PRIMARY KEY
, driverId TEXT NOT NULL REFERENCES drivers(id)
, driverNumber INTEGER NOT NULL
, seasonEntrantId VARCHAR(255) REFERENCES seasonEntrants(id)
, entrantName VARCHAR(255) NOT NULL
, chassisManufacturerId VARCHAR(255) REFERENCES companies(id) NOT NULL
, chassisName VARCHAR(255)
, engineName VARCHAR(255)
, engineManufacturerId VARCHAR(255) REFERENCES companies(id) NOT NULL
, tyreManufacturerId VARCHAR(255) REFERENCES tyreManufacturers(id)
, note VARCHAR(255)
);
-- Table: lapTimes
DROP TABLE IF EXISTS lapTimes;
CREATE TABLE IF NOT EXISTS lapTimes
( entrantId VARCHAR(255) COLLATE NOCASE REFERENCES sessionEntrants(id)
, sessionId VARCHAR(10) NOT NULL REFERENCES sessions(id) ON UPDATE CASCADE
, lap INTEGER NOT NULL
, time NUMERIC
, pos INTEGER
, PRIMARY KEY (entrantId, sessionId, lap)
);
-- Table: pitStops
DROP TABLE IF EXISTS pitStops;
CREATE TABLE IF NOT EXISTS pitStops
( entrantId VARCHAR(255) COLLATE NOCASE REFERENCES sessionEntrants(id)
, sessionId TEXT NOT NULL REFERENCES sessions(id) ON UPDATE CASCADE
, lap INTEGER NOT NULL
, time NUMERIC
, timeOfDay VARCHAR(10)
, annotation VARCHAR(255)
, PRIMARY KEY (entrantId, sessionId, lap)
);
-- Table: session
DROP TABLE IF EXISTS sessions;
CREATE TABLE IF NOT EXISTS sessions
( id VARCHAR(10) NOT NULL PRIMARY KEY
, eventId TEXT NOT NULL REFERENCES events (id) ON UPDATE CASCADE
, abbreviation NOT NULL
, startDateTime VARCHAR(255)
);
-- Table: events
DROP TABLE IF EXISTS events;
CREATE TABLE IF NOT EXISTS events
( id VARCHAR(10) NOT NULL PRIMARY KEY
, grandPrixId VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES grandsPrix(id)
, name VARCHAR(255) NOT NULL COLLATE NOCASE
, qualyFormat VARCHAR(255) NOT NULL COLLATE NOCASE
, circuitId VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES circuits(id)
, scheduledLaps INTEGER
, posterURL VARCHAR(255) COLLATE NOCASE
);
-- Table: fpResults
DROP TABLE IF EXISTS fpResults;
CREATE TABLE IF NOT EXISTS fpResults
( sessionId VARCHAR(10) NOT NULL REFERENCES sessions(id)
, entrantId VARCHAR(255) COLLATE NOCASE REFERENCES sessionEntrants(id)
, positionOrder INTEGER
, positionText VARCHAR(3)
, laps INTEGER
, time INTEGER
, PRIMARY KEY (sessionId, entrantId)
);
-- Table: qualifyingResults
DROP TABLE IF EXISTS qualifyingResults;
CREATE TABLE IF NOT EXISTS qualifyingResults
( sessionId VARCHAR(10) NOT NULL REFERENCES sessions(id)
, entrantId VARCHAR(255) COLLATE NOCASE REFERENCES sessionEntrants(id)
, positionOrder INTEGER
, positionText VARCHAR(3)
, laps INTEGER
, time INTEGER
, PRIMARY KEY (sessionId, entrantId)
);
-- Table: raceResults
DROP TABLE IF EXISTS raceResults;
CREATE TABLE IF NOT EXISTS raceResults
( sessionId VARCHAR(10) NOT NULL REFERENCES sessions(id)
, entrantId VARCHAR(255) COLLATE NOCASE REFERENCES sessionEntrants(id)
, positionOrder INTEGER NOT NULL
, positionText VARCHAR(4) NOT NULL
, time INTEGER
, gridPosition INTEGER
, gridPenalty VARCHAR(10)
, laps INTEGER
, points INTEGER
, pointsCountForWDC BOOLEAN NOT NULL
, pointsGained INTEGER
, timePenalty INTEGER
, reasonRetired VARCHAR(255)
, PRIMARY KEY (sessionId, entrantId, positionOrder)
);
-- Table: redFlags
DROP TABLE IF EXISTS redFlags;
CREATE TABLE IF NOT EXISTS redFlags
( eventId VARCHAR(10) NOT NULL REFERENCES events(id)
, lap INTEGER NOT NULL
, incident VARCHAR(255) NOT NULL
, excluded VARCHAR(2000)
, resumed VARCHAR(1)
, PRIMARY KEY (eventId, lap, incident)
);
-- Table: safetyCars
DROP TABLE IF EXISTS safetyCars;
CREATE TABLE IF NOT EXISTS safetyCars
( eventId VARCHAR(10) NOT NULL REFERENCES events(id)
, deployed INTEGER NOT NULL
, fullLaps INTEGER
, retreated INTEGER
, cause VARCHAR(255)
, PRIMARY KEY (eventId, deployed)
);
-- Table: seasonEntrants
DROP TABLE IF EXISTS seasonEntrants;
CREATE TABLE IF NOT EXISTS seasonEntrants
( id VARCHAR(255) NOT NULL COLLATE NOCASE PRIMARY KEY
, season INTEGER NOT NULL
, name VARCHAR(255) NOT NULL COLLATE NOCASE
, countryId VARCHAR(255) NOT NULL COLLATE NOCASE REFERENCES countries(alpha2Code)
);
COMMIT TRANSACTION;
PRAGMA foreign_keys = on;