source: trunk/tools/database/CreateTables.sql@ 3870

Last change on this file since 3870 was 3870, checked in by bird, 25 years ago

Added description to author.
Added type column to function and dll.
Added updated column to file.

File size: 6.4 KB
Line 
1-- $Id: CreateTables.sql,v 1.12 2000-07-20 11:39:59 bird Exp $
2--
3-- Create all tables.
4--
5
6CREATE DATABASE Odin32;
7
8USE Odin32;
9
10
11--
12-- Manually create author table.
13--
14CREATE TABLE author (
15 refcode SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
16 name VARCHAR(64) NOT NULL,
17 initials CHAR(4) NOT NULL,
18 alias VARCHAR(32),
19 email VARCHAR(64),
20 country VARCHAR(64),
21 location VARCHAR(64),
22 description TEXT,
23 UNIQUE u1(refcode),
24 UNIQUE u2(name),
25 UNIQUE u3(initials)
26-- ,UNIQUE i4(alias), UNIQUE columns have to be defined NOT NULL in mySql.
27-- UNIQUE i5(email) UNIQUE columns have to be defined NOT NULL in mySql.
28);
29
30
31
32--
33--
34-- Documentation
35--
36--
37
38--
39-- This table holds the known states.
40--
41CREATE TABLE state (
42 refcode TINYINT NOT NULL PRIMARY KEY,
43 color CHAR(7) NOT NULL,
44 weight TINYINT NOT NULL,
45 name VARCHAR(32) NOT NULL,
46 description VARCHAR(128) NOT NULL,
47 UNIQUE u1(refcode),
48 UNIQUE u2(name),
49 UNIQUE u3(color)
50);
51
52
53--
54-- This table holds the dll names.
55-- Type has these known types:
56-- 'A' for Odin32 API dll
57-- 'I' for Internal Odin32 (API) dll
58-- 'S' for support stuff (ie. pe.exe and win32k.sys).
59-- 'T' for tools (executables and dlls)
60--
61CREATE TABLE dll (
62 refcode TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
63 name VARCHAR(32) NOT NULL,
64 type CHAR NOT NULL DEFAULT 'A',
65 description VARCHAR(255),
66 UNIQUE u1(refcode),
67 UNIQUE u2(name)
68);
69
70
71--
72-- This table holds fileinformation (per dll).
73--
74CREATE TABLE file (
75 refcode INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
76 dll TINYINT NOT NULL,
77 name VARCHAR(128) NOT NULL,
78 lastdatetime DATETIME NOT NULL,
79 lastauthor SMALLINT NOT NULL,
80 revision CHAR(10) NOT NULL,
81 updated TINYINT NOT NULL DEFAULT 0,
82 description TEXT,
83 UNIQUE u1(refcode),
84 UNIQUE u2(dll, name),
85 INDEX i1(name)
86);
87
88
89--
90-- This table holds design notes (per dll).
91--
92CREATE TABLE designnote (
93 refcode INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
94 dll TINYINT NOT NULL,
95 file INTEGER NOT NULL,
96 seqnbrfile SMALLINT NOT NULL,
97 seqnbr INTEGER NOT NULL,
98 title TEXT,
99 note TEXT NOT NULL,
100 UNIQUE u1(refcode),
101 INDEX u2(file, seqnbrfile, seqnbr, dll)
102);
103
104
105--
106-- This table holds API information (per dll / file).
107--
108-- Type has these known values:
109-- 'A' for API
110-- 'I' for Internal Odin32 API
111--
112CREATE TABLE function (
113 refcode INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
114 dll TINYINT NOT NULL,
115 aliasfn INTEGER NOT NULL DEFAULT -1,
116 file INTEGER NOT NULL DEFAULT -1,
117 name VARCHAR(100) NOT NULL,
118 intname VARCHAR(100) NOT NULL,
119 state TINYINT NOT NULL DEFAULT 0,
120 ordinal INTEGER NOT NULL,
121 apigroup SMALLINT,
122 return VARCHAR(64),
123 type CHAR NOT NULL DEFAULT 'A',
124 updated TINYINT NOT NULL DEFAULT 0,
125 description TEXT,
126 remark TEXT,
127 returndesc TEXT,
128 sketch TEXT,
129 equiv TEXT,
130 time TEXT,
131 UNIQUE i1(refcode, aliasfn),
132 UNIQUE i1a(dll, aliasfn, refcode),
133 UNIQUE i1b(aliasfn, name, dll),
134 UNIQUE i1c(aliasfn, intname, dll, refcode),
135 UNIQUE i2(name, dll, refcode),
136 UNIQUE i3(intname, dll, refcode),
137 INDEX i4(dll, file),
138 INDEX i5(file),
139 UNIQUE u1(refcode),
140 UNIQUE u2(name, dll),
141 UNIQUE u3(type, refcode)
142);
143
144
145--
146-- This table holds parameters for APIs.
147--
148CREATE TABLE parameter (
149 function INTEGER NOT NULL,
150 sequencenbr TINYINT NOT NULL,
151 name VARCHAR(64) NOT NULL,
152 type VARCHAR(64) NOT NULL,
153 description TEXT,
154 INDEX i1(function, name),
155 UNIQUE u1(function, name)
156);
157
158
159--
160-- Many to many relation between functions and authors.
161--
162CREATE TABLE fnauthor (
163 author SMALLINT NOT NULL,
164 function INTEGER NOT NULL,
165 UNIQUE u1(function, author)
166);
167
168
169--
170-- Manually created Groups of APIs
171--
172CREATE TABLE apigroup (
173 refcode SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
174 dll TINYINT NOT NULL,
175 name VARCHAR(64) NOT NULL,
176 description VARCHAR(128),
177 UNIQUE u1(refcode),
178 UNIQUE u2(name)
179);
180
181
182
183--
184--
185-- History information
186--
187--
188
189--
190-- Status history for dlls.
191--
192CREATE TABLE historydll (
193 dll TINYINT NOT NULL,
194 state SMALLINT NOT NULL,
195 date DATE NOT NULL,
196 count SMALLINT NOT NULL,
197 UNIQUE u1(dll, state, date)
198);
199
200
201--
202-- Status history for API groups.
203--
204CREATE TABLE historyapigroup (
205 apigroup SMALLINT NOT NULL,
206 state SMALLINT NOT NULL,
207 date DATE NOT NULL,
208 count SMALLINT NOT NULL,
209 UNIQUE u1(apigroup, state, date)
210);
211
212
213--
214-- Dll API count history.
215--
216CREATE TABLE historydlltotal (
217 dll SMALLINT NOT NULL,
218 date DATE NOT NULL,
219 totalcount SMALLINT NOT NULL,
220 UNIQUE u1(dll, DATE)
221);
222
223
224--
225-- API Group API count history.
226--
227CREATE TABLE historyapigrouptotal (
228 apigroup SMALLINT NOT NULL,
229 date DATE NOT NULL,
230 totalcount SMALLINT NOT NULL,
231 UNIQUE u1(apigroup, date)
232);
233
234
235
236--
237--
238-- Administration
239--
240--
241
242--
243-- This table holds the teams (like MAD, WAI,...).
244--
245CREATE TABLE team (
246 refcode SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
247 name VARCHAR(30) NOT NULL,
248 longname VARCHAR(128) NOT NULL,
249 description TEXT NOT NULL,
250 tasks TEXT,
251 notes TEXT,
252 UNIQUE u1(refcode),
253 UNIQUE u2(name)
254);
255
256
257--
258-- This table holds the groups under each team.
259-- Currently only the WAI team is grouped.
260--
261CREATE TABLE tgroup (
262 refcode SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
263 team SMALLINT NOT NULL,
264 name VARCHAR(80) NOT NULL,
265 description TEXT NOT NULL,
266 notes TEXT,
267 UNIQUE u1(refcode),
268 UNIQUE u2(team, refcode)
269);
270
271
272--
273-- This table relates a tgroup with authors
274-- ( do a distinct select to get all members of a team )
275--
276CREATE TABLE tgroupmember (
277 tgroup SMALLINT NOT NULL,
278 author SMALLINT NOT NULL,
279 codemaintainer CHAR(1) DEFAULT 'N',
280 UNIQUE u1(tgroup, author)
281);
282
283
284--
285-- This table relates a tgroup with a dll.
286--
287CREATE TABLE tgroupdll (
288 tgroup SMALLINT NOT NULL,
289 dll TINYINT NOT NULL,
290 UNIQUE u1(tgroup, dll)
291);
292
293
294--
295-- This table relates a tgroup with an apigroup.
296--
297CREATE TABLE tgroupapigroup (
298 tgroup SMALLINT NOT NULL,
299 apigroup SMALLINT NOT NULL,
300 UNIQUE u1(tgroup, apigroup)
301);
302
303
304
Note: See TracBrowser for help on using the repository browser.