-- database system tables BEGIN
-- table and key are reserved words :-(
create table dbtable (
dbtable char,
dbkey integer,
primary key ( dbtable)
);
insert into dbtable ( dbtable, dbkey ) values ( 'dbtable', 1 );
insert into dbtable ( dbtable, dbkey ) values ( 'dbfield', 1 );
insert into dbtable ( dbtable, dbkey ) values ( 'dbdomain', 1 );
-- dbfield is really "table field"
create table dbfield (
dbfield char,
dbposition integer,
dbdomain char,
dbattrs char,
primary key ( dbfield )
);
delete from dbfield where dbfield glob 'dbtable *';
insert into dbfield values ('dbtable dbtable', 0, 'char', '-width 20 -text Table -widget entry' );
insert into dbfield values ('dbtable dbkey', 1, 'integer', '-width 2 -text Keys -widget entry' );
delete from dbfield where dbfield glob 'dbfield *';
insert into dbfield values ('dbfield dbfield', 0, 'char', '-width 20 -text Field -widget entry' );
insert into dbfield values ('dbfield dbposition', 1, 'integer', '-width 2 -text Position -widget entry' );
insert into dbfield values ('dbfield dbdomain', 2, 'char', '-width 20 -text Domain -widget entry' );
insert into dbfield values ('dbfield dbattrs', 3, 'char', '-width 30 -text Attrs -widget entry' );
create table dbdomain (
dbdomain char(20),
dbtype char(20),
dbattrs char(40),
primary key (dbdomain)
);
delete from dbfield where dbfield glob 'dbdomain *';
insert into dbfield values ('dbdomain dbdomain', 0, 'dbdomain', '-width 20 -label Domain -labeltext Domain' );
insert into dbfield values ('dbdomain dbtype', 1, 'char', '-width 20 -label Type -labeltext Type' );
insert into dbfield values ('dbdomain dbattrs', 2, 'char', '-width 30 -label Attrs -labeltext Attrs' );
-- base dbdomain types are 'char', 'num'
insert into dbdomain values ( '', 'char', '-widget entry -width 12' );
insert into dbdomain values ( 'char', 'char', '-widget entry -width 30' );
insert into dbdomain values ( 'num', 'num', '-widget entry -width 8' );
-- system types are dbdomain, dbattrs, dbtable, dbkey, dbfield, dbposition, dbtype
insert into dbdomain values ( 'dbdomain', 'char', '-widget entry -width 20 -text Domain -labeltext Domain' );
insert into dbdomain values ( 'dbtable', 'char', '-widget entry -width 20 -text Table -labeltext Table' );
insert into dbdomain values ( 'dbkey', 'num', '-widget entry -width 3' );
insert into dbdomain values ( 'dbfield', 'char', '-widget entry -width 20 -text Field -labeltext Field' );
insert into dbdomain values ( 'dbposition', 'num', '-widget entry -width 3 -text Position -labeltext Position' );
insert into dbdomain values ( 'dbtype', 'char', '-widget entry -width 10' );
-- END of base table definitions
-- in theory the dbdomain table can be constructed from dbtable and dbfield
-- the contents of these 3 tables can now be used to create any database tables
-- the code to do this has not been written yet
|