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

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

Implemented design notes and file info.

File size: 4.4 KB
Line 
1-- $Id: CreateTables.sql,v 1.8 2000-07-18 07:15:57 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 name VARCHAR(32) NOT NULL,
18 description VARCHAR(128),
19 UNIQUE u1(refcode),
20 UNIQUE u2(name),
21 UNIQUE u3(color)
22);
23
24
25--
26-- This table holds the dll names.
27--
28CREATE TABLE dll (
29 refcode TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
30 name VARCHAR(32) NOT NULL,
31 description VARCHAR(255),
32 UNIQUE u1(refcode),
33 UNIQUE u2(name)
34);
35
36
37--
38-- This table holds fileinformation (per dll).
39--
40CREATE TABLE file (
41 refcode INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
42 dll TINYINT NOT NULL,
43 name VARCHAR(128) NOT NULL,
44 lastdatetime DATETIME NOT NULL,
45 lastauthor SMALLINT NOT NULL,
46 revision CHAR(10) NOT NULL,
47 description TEXT,
48 UNIQUE u1(refcode),
49 UNIQUE u2(dll, name),
50 INDEX i1(name)
51);
52
53--
54-- This table holds design notes (per dll).
55--
56CREATE TABLE designnote (
57 refcode INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
58 dll TINYINT NOT NULL,
59 file INTEGER NOT NULL,
60 seqnbrfile SMALLINT NOT NULL,
61 seqnbr INTEGER NOT NULL,
62 title TEXT,
63 note TEXT NOT NULL,
64 UNIQUE u1(refcode),
65 INDEX u2(file, seqnbrfile, seqnbr, dll)
66);
67
68
69--
70-- This table holds API information (per dll / file).
71--
72CREATE TABLE function (
73 refcode INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
74 dll TINYINT NOT NULL,
75 aliasfn INTEGER NOT NULL DEFAULT -1,
76 file INTEGER NOT NULL DEFAULT -1,
77 name VARCHAR(100) NOT NULL,
78 intname VARCHAR(100) NOT NULL,
79 state TINYINT NOT NULL DEFAULT 0,
80 ordinal INTEGER NOT NULL,
81 apigroup SMALLINT,
82 return VARCHAR(64),
83 updated TINYINT NOT NULL DEFAULT 0,
84 description TEXT,
85 remark TEXT,
86 returndesc TEXT,
87 sketch TEXT,
88 equiv TEXT,
89 time TEXT,
90 UNIQUE i1(refcode, aliasfn),
91 UNIQUE i1a(dll, aliasfn, refcode),
92 UNIQUE i1b(aliasfn, name, dll),
93 UNIQUE i1c(aliasfn, intname, dll, refcode),
94 UNIQUE i2(name, dll, refcode),
95 UNIQUE i3(intname, dll, refcode),
96 INDEX i4(dll, file),
97 INDEX i5(file),
98 UNIQUE u1(refcode),
99 UNIQUE u2(name, dll)
100);
101
102
103--
104-- This table holds parameters for APIs.
105--
106CREATE TABLE parameter (
107 function INTEGER NOT NULL,
108 sequencenbr TINYINT NOT NULL,
109 name VARCHAR(64) NOT NULL,
110 type VARCHAR(64) NOT NULL,
111 description TEXT,
112 INDEX i1(function, name),
113 UNIQUE u1(function, name)
114);
115
116
117
118--
119-- Manually created Groups of APIs
120--
121CREATE TABLE apigroup (
122 refcode SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
123 dll TINYINT NOT NULL,
124 name VARCHAR(64) NOT NULL,
125 description VARCHAR(128),
126 UNIQUE u1(refcode),
127 UNIQUE u2(name)
128);
129
130
131--
132-- Manually create author table.
133--
134CREATE TABLE author (
135 refcode SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
136 name VARCHAR(64) NOT NULL,
137 initials CHAR(4) NOT NULL,
138 alias VARCHAR(32),
139 email VARCHAR(64),
140 country VARCHAR(64),
141 location VARCHAR(64),
142 UNIQUE u1(refcode),
143 UNIQUE u2(name),
144 UNIQUE u3(initials)
145-- ,UNIQUE i4(alias), UNIQUE columns have to be defined NOT NULL in mySql.
146-- UNIQUE i5(email) UNIQUE columns have to be defined NOT NULL in mySql.
147);
148
149
150--
151-- Many to many relation between functions and authors.
152--
153CREATE TABLE fnauthor (
154 author SMALLINT NOT NULL,
155 function INTEGER NOT NULL,
156 UNIQUE u1(function, author)
157);
158
159
160--
161-- Status history for dlls.
162--
163CREATE TABLE historydll (
164 dll TINYINT NOT NULL,
165 state SMALLINT NOT NULL,
166 date DATE NOT NULL,
167 count SMALLINT NOT NULL,
168 UNIQUE u1(dll, state, date)
169);
170
171
172--
173-- Status history for API groups.
174--
175CREATE TABLE historyapigroup (
176 apigroup SMALLINT NOT NULL,
177 state SMALLINT NOT NULL,
178 date DATE NOT NULL,
179 count SMALLINT NOT NULL,
180 UNIQUE u1(apigroup, state, date)
181);
182
183
184--
185-- Dll API count history.
186--
187CREATE TABLE historydlltotal (
188 dll SMALLINT NOT NULL,
189 date DATE NOT NULL,
190 totalcount SMALLINT NOT NULL,
191 UNIQUE u1(dll, DATE)
192);
193
194
195--
196-- API Group API count history.
197--
198CREATE TABLE historyapigrouptotal (
199 apigroup SMALLINT NOT NULL,
200 date DATE NOT NULL,
201 totalcount SMALLINT NOT NULL,
202 UNIQUE u1(apigroup, date)
203);
204
205
Note: See TracBrowser for help on using the repository browser.