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

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

Added column 'weigth' to the state table.
This column hold the weigth functions in that state should have when
calculating the total completion percentage.

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