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

Last change on this file since 2773 was 2773, checked in by bird, 26 years ago

Optimizations and a couple of fixes.

File size: 2.9 KB
Line 
1-- $Id: CreateTables.sql,v 1.5 2000-02-14 13:49:12 bird Exp $
2--
3-- Create all tables.
4--
5
6CREATE DATABASE Odin32;
7
8USE Odin32;
9
10CREATE TABLE dll (
11 refcode TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
12 name VARCHAR(32) NOT NULL,
13 description VARCHAR(255),
14 UNIQUE u1(refcode),
15 UNIQUE u2(name)
16);
17
18CREATE TABLE state (
19 refcode TINYINT NOT NULL PRIMARY KEY,
20 color CHAR(7) NOT NULL,
21 name VARCHAR(32) NOT NULL,
22 description VARCHAR(128),
23 UNIQUE u1(refcode),
24 UNIQUE u2(name),
25 UNIQUE u3(color)
26);
27
28CREATE TABLE function (
29 refcode INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
30 dll TINYINT NOT NULL,
31 aliasfn INTEGER NOT NULL DEFAULT -1,
32 name VARCHAR(74) NOT NULL,
33 intname VARCHAR(74) NOT NULL,
34 state TINYINT NOT NULL DEFAULT 0,
35 ordinal INTEGER NOT NULL,
36 apigroup SMALLINT,
37 return VARCHAR(64),
38 updated TINYINT NOT NULL DEFAULT 0,
39 UNIQUE i1(refcode, aliasfn),
40 UNIQUE i1a(dll, aliasfn, refcode),
41 UNIQUE i1b(aliasfn, name, dll),
42 UNIQUE i1c(aliasfn, intname, dll, refcode),
43 UNIQUE i2(name, dll, refcode),
44 UNIQUE i3(intname, dll, refcode),
45 UNIQUE u1(refcode),
46 UNIQUE u2(name, dll)
47);
48
49CREATE TABLE apigroup (
50 refcode SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
51 dll TINYINT NOT NULL,
52 name VARCHAR(64) NOT NULL,
53 description VARCHAR(128),
54 UNIQUE u1(refcode),
55 UNIQUE u2(name)
56);
57
58CREATE TABLE author (
59 refcode SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
60 name VARCHAR(64) NOT NULL,
61 initials CHAR(4) NOT NULL,
62 alias VARCHAR(32),
63 email VARCHAR(64),
64 country VARCHAR(64),
65 location VARCHAR(64),
66 UNIQUE u1(refcode),
67 UNIQUE u2(name),
68 UNIQUE u3(initials)
69-- ,UNIQUE i4(alias), UNIQUE columns have to be defined NOT NULL in mySql.
70-- UNIQUE i5(email) UNIQUE columns have to be defined NOT NULL in mySql.
71);
72
73CREATE TABLE fnauthor (
74 author SMALLINT NOT NULL,
75 function INTEGER NOT NULL,
76 UNIQUE u1(function, author)
77);
78
79CREATE TABLE historydll (
80 dll TINYINT NOT NULL,
81 state SMALLINT NOT NULL,
82 date DATE NOT NULL,
83 count SMALLINT NOT NULL,
84 UNIQUE u1(dll, state, date)
85);
86
87CREATE TABLE historyapigroup (
88 apigroup SMALLINT NOT NULL,
89 state SMALLINT NOT NULL,
90 date DATE NOT NULL,
91 count SMALLINT NOT NULL,
92 UNIQUE u1(apigroup, state, date)
93);
94
95CREATE TABLE historydlltotal (
96 dll SMALLINT NOT NULL,
97 date DATE NOT NULL,
98 totalcount SMALLINT NOT NULL,
99 UNIQUE u1(dll, DATE)
100);
101
102CREATE TABLE historyapigrouptotal (
103 apigroup SMALLINT NOT NULL,
104 date DATE NOT NULL,
105 totalcount SMALLINT NOT NULL,
106 UNIQUE u1(apigroup, date)
107);
108
109CREATE TABLE parameter (
110 function INTEGER NOT NULL,
111 sequencenbr TINYINT NOT NULL,
112 name VARCHAR(64) NOT NULL,
113 type VARCHAR(64) NOT NULL,
114 description VARCHAR(128),
115 INDEX i1(function, name(10)),
116 UNIQUE u1(function, name)
117);
118
Note: See TracBrowser for help on using the repository browser.