diff --git a/db/mariadb.sql b/db/mariadb.sql index 493af1c..fe2733f 100644 --- a/db/mariadb.sql +++ b/db/mariadb.sql @@ -4,13 +4,13 @@ Version: 1 */ CREATE TABLE user ( - userid SMALLINT(6) NOT NULL AUTO_INCREMENT, - login VARCHAR(20) NOT NULL, - pass BINARY(60) NOT NULL, - displayname VARCHAR(100) NOT NULL, - role SET('vessel', 'captain','helmsman','sailor') NOT NULL DEFAULT 'sailor', - flags SET('deleted','locked'), - language CHAR(2) NOT NULL DEFAULT 'en', + userid smallint(6) NOT NULL AUTO_INCREMENT, + login varchar(20) NOT NULL, + pass binary(60) NOT NULL, + displayname varchar(100) NOT NULL, + role set('vessel', 'captain','helmsman','sailor') NOT NULL DEFAULT 'sailor', + flags set('deleted','locked'), + language char(2) NOT NULL DEFAULT 'en', PRIMARY KEY (userid), UNIQUE INDEX ix_login (login) ); @@ -31,10 +31,10 @@ CREATE TABLE user ( */ CREATE TABLE settings ( - userid SMALLINT(6) NOT NULL, - sno SMALLINT(6) NOT NULL, - valstr VARCHAR(200) DEFAULT NULL, - valint INT(10) DEFAULT NULL, + userid smallint(6) NOT NULL, + sno smallint(6) NOT NULL, + valstr varchar(200) DEFAULT NULL, + valint int(10) DEFAULT NULL, PRIMARY KEY (userid, sno) ); @@ -42,43 +42,45 @@ CREATE TABLE settings ( flags: fixed=not deletable, value not changeable locked=not editable */ CREATE TABLE dropdown ( - ddid TINYINT(3) UNSIGNED NOT NULL, - ddval TINYINT(3) NOT NULL, - sort TINYINT(3) DEFAULT NULL, - ddtext VARCHAR(50) NOT NULL, - ddshort VARCHAR(4) DEFAULT NULL, - color CHAR(6) DEFAULT NULL, - flags ENUM('locked', 'fixed') DEFAULT NULL, + ddid tinyint(3) UNSIGNED NOT NULL, + ddval tinyint(3) NOT NULL, + sort tinyint(3) DEFAULT NULL, + ddtext varchar(50) NOT NULL, + ddshort varchar(4) DEFAULT NULL, + color char(6) DEFAULT NULL, + flags enum('locked', 'fixed') DEFAULT NULL, PRIMARY KEY (ddid, ddval) ); CREATE TABLE vessel ( - vid SMALLINT(10) NOT NULL AUTO_INCREMENT, - vtype ENUM('mono','cat','tri') NOT NULL DEFAULT 'mono', - vesselname VARCHAR(40) NOT NULL, - model VARCHAR(20) DEFAULT NULL, - loa FLOAT(4,2) UNSIGNED DEFAULT NULL, - lwl FLOAT(4,2) UNSIGNED DEFAULT NULL, - beam FLOAT(4,2) UNSIGNED DEFAULT NULL, - draught FLOAT(3,2) UNSIGNED DEFAULT NULL, - draught_min FLOAT(3,2) UNSIGNED DEFAULT NULL, - displacement SMALLINT(6) UNSIGNED DEFAULT NULL, - ballast SMALLINT(6) UNSIGNED DEFAULT NULL, - remarks VARCHAR(150) DEFAULT NULL, + vid smallint(10) NOT NULL AUTO_INCREMENT, + vtype enum('mono','cat','tri') NOT NULL DEFAULT 'mono', + vesselname varchar(40) NOT NULL, + model varchar(20) DEFAULT NULL, + loa float(4,2) UNSIGNED DEFAULT NULL, + lwl float(4,2) UNSIGNED DEFAULT NULL, + beam float(4,2) UNSIGNED DEFAULT NULL, + draught float(3,2) UNSIGNED DEFAULT NULL, + draught_min float(3,2) UNSIGNED DEFAULT NULL, + displacement smallint(6) UNSIGNED DEFAULT NULL, + ballast smallint(6) UNSIGNED DEFAULT NULL, + beltpos_aft float(4,2) UNSIGNED DEFAULT NULL, + beltpos_bow float(4,2) UNSIGNED DEFAULT NULL, + remarks varchar(150) DEFAULT NULL, PRIMARY KEY (vid) ); CREATE TABLE storage ( - sid SMALLINT(6) NOT NULL AUTO_INCREMENT, - vid SMALLINT(6) NOT NULL DEFAULT 1, - sname VARCHAR(40) NOT NULL, - stype TINYINT(3) NOT NULL DEFAULT 0, - capacity SMALLINT(6) DEFAULT NULL, - capaunit ENUM('kg', 'l') DEFAULT NULL, - x SMALLINT(6) NOT NULL DEFAULT 0, - y SMALLINT(6) NOT NULL DEFAULT 0, - z SMALLINT(6) NOT NULL DEFAULT 0, - remarks VARCHAR(150) DEFAULT NULL, + sid smallint(6) NOT NULL AUTO_INCREMENT, + vid smallint(6) NOT NULL DEFAULT 1, + sname varchar(40) NOT NULL, + stype tinyint(3) NOT NULL DEFAULT 0, + capacity smallint(6) DEFAULT NULL, + capaunit enum('kg', 'l') DEFAULT NULL, + x smallint(6) NOT NULL DEFAULT 0, + y smallint(6) NOT NULL DEFAULT 0, + z smallint(6) NOT NULL DEFAULT 0, + remarks varchar(150) DEFAULT NULL, PRIMARY KEY (sid) ); @@ -86,132 +88,132 @@ CREATE TABLE storage ( CREATE TABLE tag ( - tagid SMALLINT(6) NOT NULL AUTO_INCREMENT, - tagname VARCHAR(20) NOT NULL, - color CHAR(6) DEFAULT NULL, + tagid smallint(6) NOT NULL AUTO_INCREMENT, + tagname varchar(20) NOT NULL, + color char(6) DEFAULT NULL, PRIMARY KEY (tagid), UNIQUE INDEX ix_tagname (tagname) ); CREATE TABLE tagref ( - tagid SMALLINT(6) NOT NULL, - objid SMALLINT(6) NOT NULL, - objtype ENUM('equip','inv','prov','doc') NOT NULL, + tagid smallint(6) NOT NULL, + objid smallint(6) NOT NULL, + objtype enum('equip','inv','prov','doc') NOT NULL, PRIMARY KEY (tagid, objid, objtype) ); /* TODO Boxes can be nested via parent TODO boxsize: (LxWxH) in cm? */ CREATE TABLE box ( - boxid SMALLINT(6) NOT NULL AUTO_INCREMENT, - sid SMALLINT(6) NOT NULL, - parent INT(10) DEFAULT NULL, - label VARCHAR(20) DEFAULT NULL, - color CHAR(6) DEFAULT NULL, - content VARCHAR(60) DEFAULT NULL, - weight FLOAT(5,2) UNSIGNED DEFAULT NULL, - remarks VARCHAR(150) DEFAULT NULL, + boxid smallint(6) NOT NULL AUTO_INCREMENT, + sid smallint(6) NOT NULL, + parent int(10) DEFAULT NULL, + label varchar(20) DEFAULT NULL, + color char(6) DEFAULT NULL, + content varchar(60) DEFAULT NULL, + weight float(5,2) UNSIGNED DEFAULT NULL, + remarks varchar(150) DEFAULT NULL, PRIMARY KEY (boxid), INDEX ix_label (label) ); CREATE TABLE equipment ( - eid SMALLINT(6) NOT NULL AUTO_INCREMENT, - vid SMALLINT(6) NOT NULL DEFAULT 1, - ename VARCHAR(80) NOT NULL, - make VARCHAR(40), - model VARCHAR(40), - ecat TINYINT(3) DEFAULT NULL, - serial VARCHAR(30), - supplier SMALLINT(6) DEFAULT NULL, - manufacturer SMALLINT(6) DEFAULT NULL, - purchdate DATE DEFAULT NULL, - price DECIMAL(12,2) DEFAULT NULL, - weight FLOAT(5,2) UNSIGNED DEFAULT NULL, - remarks VARCHAR(150) DEFAULT NULL, + eid smallint(6) NOT NULL AUTO_INCREMENT, + vid smallint(6) NOT NULL DEFAULT 1, + ename varchar(80) NOT NULL, + make varchar(40), + model varchar(40), + ecat tinyint(3) DEFAULT NULL, + serial varchar(30), + supplier smallint(6) DEFAULT NULL, + manufacturer smallint(6) DEFAULT NULL, + purchdate date DEFAULT NULL, + price decimal(12,2) DEFAULT NULL, + weight float(5,2) UNSIGNED DEFAULT NULL, + remarks varchar(150) DEFAULT NULL, PRIMARY KEY(eid) ); CREATE TABLE inventory ( - invid INT(10) NOT NULL AUTO_INCREMENT, - invname VARCHAR(80) NOT NULL, - boxtype ENUM('storage','box') NOT NULL DEFAULT 'storage', - sid SMALLINT(6) NOT NULL DEFAULT 1, - boxid SMALLINT(6) NOT NULL DEFAULT 1, - number SMALLINT(6) UNSIGNED NOT NULL DEFAULT 1, - weight FLOAT(5,2) UNSIGNED DEFAULT NULL, - price DECIMAL(12,2) DEFAULT NULL, - purchdate DATE DEFAULT NULL, - invcond ENUM('unknown','good','normal','bad','repairable','defect') NOT NULL default 'unknown', + invid int(10) NOT NULL AUTO_INCREMENT, + invname varchar(80) NOT NULL, + boxtype enum('storage','box') NOT NULL DEFAULT 'storage', + sid smallint(6) NOT NULL DEFAULT 1, + boxid smallint(6) NOT NULL DEFAULT 1, + number smallint(6) UNSIGNED NOT NULL DEFAULT 1, + weight float(5,2) UNSIGNED DEFAULT NULL, + price decimal(12,2) DEFAULT NULL, + purchdate date DEFAULT NULL, + invcond enum('unknown','good','normal','bad','repairable','defect') NOT NULL default 'unknown', PRIMARY KEY (invid), INDEX ix_invname (invname) ); CREATE TABLE measurement ( - mid SMALLINT(6) NOT NULL AUTO_INCREMENT, - mname VARCHAR(80) NOT NULL, - nval TINYINT(1) UNSIGNED NOT NULL DEFAULT 1, - val1 INT(10) NOT NULL, - val2 INT(10) NOT NULL, - val3 INT(10) NOT NULL, - unit TINYINT(3) NOT NULL DEFAULT 1, - accuracy ENUM('unknown', 'precise', 'normal', 'rough', 'estimated') NOT NULL DEFAULT 'unknown', - mdate DATE DEFAULT NULL, - note VARCHAR(80) DEFAULT NULL, - eid SMALLINT(6) DEFAULT NULL, + mid smallint(6) NOT NULL AUTO_INCREMENT, + mname varchar(80) NOT NULL, + nval tinyint(1) UNSIGNED NOT NULL DEFAULT 1, + val1 int(10) NOT NULL, + val2 int(10) NOT NULL, + val3 int(10) NOT NULL, + unit tinyint(3) NOT NULL DEFAULT 1, + accuracy enum('unknown', 'precise', 'normal', 'rough', 'estimated') NOT NULL DEFAULT 'unknown', + mdate date DEFAULT NULL, + note varchar(80) DEFAULT NULL, + eid smallint(6) DEFAULT NULL, PRIMARY KEY (mid) ); CREATE TABLE provisions ( - provid INT(10) NOT NULL AUTO_INCREMENT, - provname VARCHAR(40) NOT NULL, - sid SMALLINT(6) DEFAULT NULL, - number SMALLINT(6) UNSIGNED NOT NULL DEFAULT 1, - unit TINYINT(3) DEFAULT NULL, - storedate DATE DEFAULT CURRENT_DATE, - shelflife DATE DEFAULT NULL, + provid int(10) NOT NULL AUTO_INCREMENT, + provname varchar(40) NOT NULL, + sid smallint(6) DEFAULT NULL, + number smallint(6) UNSIGNED NOT NULL DEFAULT 1, + unit tinyint(3) DEFAULT NULL, + storedate date DEFAULT CURRENT_DATE, + shelflife date DEFAULT NULL, PRIMARY KEY (provid) ); CREATE TABLE document ( - docid SMALLINT(6) NOT NULL AUTO_INCREMENT, - doctype ENUM('generic', 'manual', 'invoice', 'drawing', 'picture') NOT NULL DEFAULT 'generic', - mimetype VARCHAR(80) NOT NULL DEFAULT 'application/octet-stream', - filename VARCHAR(200) NOT NULL, - extension CHAR(3) NOT NULL, - hash VARCHAR(32) NOT NULL, - docsize INT(10) unsigned NOT NULL, - doctime DATETIME DEFAULT NULL, - title VARCHAR(40) DEFAULT NULL, - pages SMALLINT(6) unsigned NOT NULL DEFAULT 1, - remarks VARCHAR(150) DEFAULT NULL, + docid smallint(6) NOT NULL AUTO_INCREMENT, + doctype enum('generic', 'manual', 'invoice', 'drawing', 'picture') NOT NULL DEFAULT 'generic', + mimetype varchar(80) NOT NULL DEFAULT 'application/octet-stream', + filename varchar(200) NOT NULL, + extension char(3) NOT NULL, + hash varchar(32) NOT NULL, + docsize int(10) unsigned NOT NULL, + doctime datetime DEFAULT NULL, + title varchar(40) DEFAULT NULL, + pages smallint(6) unsigned NOT NULL DEFAULT 1, + remarks varchar(150) DEFAULT NULL, PRIMARY KEY (docid) ); CREATE TABLE docref ( - drid INT(10) NOT NULL AUTO_INCREMENT, - reftype ENUM('vessel', 'box', 'equipment', 'project', 'task') NOT NULL DEFAULT 'vessel', - docid SMALLINT(6) NOT NULL, - refid SMALLINT(6) NOT NULL, + drid int(10) NOT NULL AUTO_INCREMENT, + reftype enum('vessel', 'box', 'equipment', 'project', 'task') NOT NULL DEFAULT 'vessel', + docid smallint(6) NOT NULL, + refid smallint(6) NOT NULL, PRIMARY KEY (drid), UNIQUE INDEX ix_docref (docid, refid) ); CREATE TABLE company ( - compid SMALLINT(6) NOT NULL AUTO_INCREMENT, - compname VARCHAR(40) NOT NULL, - comptype TINYINT(3) NOT NULL DEFAULT 1, - street VARCHAR(30), - zip VARCHAR(10), - city VARCHAR(30), - country VARCHAR(30), - contact VARCHAR(30), - phone VARCHAR(30), - email VARCHAR(50), - web VARCHAR(40), - customerno VARCHAR(20), - contractno VARCHAR(20), - remarks VARCHAR(150) DEFAULT NULL, + compid smallint(6) NOT NULL AUTO_INCREMENT, + compname varchar(40) NOT NULL, + comptype tinyint(3) NOT NULL DEFAULT 1, + street varchar(30), + zip varchar(10), + city varchar(30), + country varchar(30), + contact varchar(30), + phone varchar(30), + email varchar(50), + web varchar(40), + customerno varchar(20), + contractno varchar(20), + remarks varchar(150) DEFAULT NULL, PRIMARY KEY (compid), UNIQUE INDEX ix_compname (compname) ); @@ -219,57 +221,57 @@ CREATE TABLE company ( /* TODO optional field: plan date, target date, completion date */ CREATE TABLE maintenance ( - maintid INT(10) NOT NULL AUTO_INCREMENT, - vid SMALLINT(6) NOT NULL DEFAULT 1, - eid SMALLINT(6) DEFAULT NULL, - series SMALLINT(6) DEFAULT NULL, - activities VARCHAR(40) NOT NULL, - remarks VARCHAR(150) DEFAULT NULL, - maintstate ENUM('new','planned','ongoing','done') NOT NULL DEFAULT 'new', + maintid int(10) NOT NULL AUTO_INCREMENT, + vid smallint(6) NOT NULL DEFAULT 1, + eid smallint(6) DEFAULT NULL, + series smallint(6) DEFAULT NULL, + activities varchar(40) NOT NULL, + remarks varchar(150) DEFAULT NULL, + maintstate enum('new','planned','ongoing','done') NOT NULL DEFAULT 'new', PRIMARY KEY (maintid) ); /* TODO? time recording */ CREATE TABLE project ( - projid SMALLINT(6) NOT NULL AUTO_INCREMENT, - projname VARCHAR(40) NOT NULL, - vid SMALLINT(6) NOT NULL DEFAULT 1, - responsible SMALLINT(6) NOT NULL, + projid smallint(6) NOT NULL AUTO_INCREMENT, + projname varchar(40) NOT NULL, + vid smallint(6) NOT NULL DEFAULT 1, + responsible smallint(6) NOT NULL, startdate date DEFAULT NULL, - duration SMALLINT(6) UNSIGNED DEFAULT NULL, - costs_plan DECIMAL(12,2) DEFAULT NULL, - costs_final DECIMAL(12,2) DEFAULT NULL, - remarks VARCHAR(150) DEFAULT NULL, - projstate ENUM('new','plan','ongoing','finished') NOT NULL DEFAULT 'new', + duration smallint(6) UNSIGNED DEFAULT NULL, + costs_plan decimal(12,2) DEFAULT NULL, + costs_final decimal(12,2) DEFAULT NULL, + remarks varchar(150) DEFAULT NULL, + projstate enum('new','plan','ongoing','finished') NOT NULL DEFAULT 'new', PRIMARY KEY (projid) ); CREATE TABLE task ( - taskid INT(10) NOT NULL AUTO_INCREMENT, - projid SMALLINT(6) DEFAULT NULL, - taskname VARCHAR(60) NOT NULL, - taskstate ENUM('new','finished') NOT NULL DEFAULT 'new', - PRIMARY KEY (taskid) + taskid int(10) NOT NULL AUTO_INCREMENT, + projid smallint(6) DEFAULT NULL, + taskname varchar(60) NOT NULL, + taskstate enum('new','finished') NOT NULL DEFAULT 'new', + PRIMARY KEY (taskid) ); CREATE TABLE checklist ( - clid SMALLINT(6) NOT NULL AUTO_INCREMENT, - title VARCHAR(30) NOT NULL, - clstate ENUM('new','open','closed') NOT NULL DEFAULT 'new', + clid smallint(6) NOT NULL AUTO_INCREMENT, + title varchar(30) NOT NULL, + clstate enum('new','open','closed') NOT NULL DEFAULT 'new', PRIMARY KEY (clid) ); CREATE TABLE checkitem ( - checkid INT(10) NOT NULL AUTO_INCREMENT, - checkname VARCHAR(60) NOT NULL, - groupid TINYINT(3) DEFAULT NULL, + checkid int(10) NOT NULL AUTO_INCREMENT, + checkname varchar(60) NOT NULL, + groupid tinyint(3) DEFAULT NULL, PRIMARY KEY (checkid) ); CREATE TABLE checkref ( - clid SMALLINT(6) NOT NULL, - checkid INT(10) NOT NULL, - sort SMALLINT(6) DEFAULT NULL, + clid smallint(6) NOT NULL, + checkid int(10) NOT NULL, + sort smallint(6) DEFAULT NULL, PRIMARY KEY (clid, checkid) ); diff --git a/db/minimal.sql b/db/minimal.sql index 13929f8..2200f02 100644 --- a/db/minimal.sql +++ b/db/minimal.sql @@ -13,6 +13,7 @@ INSERT INTO user (userid, login, pass, displayname, role) VALUES INSERT INTO settings (userid, sno, valint) VALUES (0, 0, 1), -- Databankschema-Version +(0, 1, 0), -- Keine Bootszuordnung für SYSTEM (1, 1, 0); -- Keine Bootszuordnung für Benutzer "captain" /* Liste der Listen wird immer benötigt */ diff --git a/db/minimal_en.sql b/db/minimal_en.sql index ade3e7b..6fa427f 100644 --- a/db/minimal_en.sql +++ b/db/minimal_en.sql @@ -13,6 +13,7 @@ INSERT INTO user (userid, login, pass, displayname, role) VALUES INSERT INTO settings (userid, sno, valint) VALUES (0, 0, 1), -- Database schema version +(0, 1, 0), -- No vessel for SYSTEM (1, 1, 0); -- No vessel for captain /* list of lists needed */ diff --git a/webgui/box.php b/webgui/box.php index 06ee76e..a91019f 100644 --- a/webgui/box.php +++ b/webgui/box.php @@ -98,13 +98,9 @@ echo "