X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fdatabase%2FtableStructure.sql;h=f451ede2aea269704b53ecb0af8f1a97a0f82562;hp=98133297ca4462a25e3cd75ab7929e709a4c3466;hb=03d27b5bdaea6253e674cdf2779465873b657900;hpb=e04e99de1af984634675056004cd031c0b526505 diff --git a/src/org/cacert/gigi/database/tableStructure.sql b/src/org/cacert/gigi/database/tableStructure.sql index 98133297..f451ede2 100644 --- a/src/org/cacert/gigi/database/tableStructure.sql +++ b/src/org/cacert/gigi/database/tableStructure.sql @@ -1,332 +1,376 @@ -DROP TABLE IF EXISTS `certOwners`; -CREATE TABLE `certOwners` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified` timestamp NULL DEFAULT NULL, - `deleted` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `users`; -CREATE TABLE `users` ( - `id` int(11) NOT NULL, - `email` varchar(255) NOT NULL DEFAULT '', - `password` varchar(255) NOT NULL DEFAULT '', - `fname` varchar(255) NOT NULL DEFAULT '', - `mname` varchar(255) NOT NULL DEFAULT '', - `lname` varchar(255) NOT NULL DEFAULT '', - `suffix` varchar(50) NOT NULL DEFAULT '', - `dob` date NOT NULL DEFAULT '0000-00-00', - `verified` int(1) NOT NULL DEFAULT '0', - `ccid` int(3) NOT NULL DEFAULT '0', - `regid` int(5) NOT NULL DEFAULT '0', - `locid` int(7) NOT NULL DEFAULT '0', - `listme` int(1) NOT NULL DEFAULT '0', - `contactinfo` varchar(255) NOT NULL DEFAULT '', - `language` varchar(5) NOT NULL DEFAULT '', - PRIMARY KEY (`id`), - KEY `ccid` (`ccid`), - KEY `regid` (`regid`), - KEY `locid` (`locid`), - KEY `email` (`email`), - KEY `stats_users_verified` (`verified`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - -DROP TABLE IF EXISTS `organisations`; -CREATE TABLE IF NOT EXISTS `organisations` ( - `id` int(11) NOT NULL, - `name` varchar(100) NOT NULL, - `state` varchar(2) NOT NULL, - `province` varchar(100) NOT NULL, - `city` varchar(100) NOT NULL, - `contactEmail` varchar(100) NOT NULL, - `creator` int(11) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `domains`; -CREATE TABLE `domains` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `memid` int(11) NOT NULL, - `domain` varchar(255) NOT NULL, - `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified` datetime NULL DEFAULT NULL, - `deleted` datetime NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `memid` (`memid`), - KEY `domain` (`domain`), - KEY `stats_domains_deleted` (`deleted`) -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `emails`; -CREATE TABLE `emails` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `memid` int(11) NOT NULL DEFAULT '0', - `email` varchar(255) NOT NULL DEFAULT '', - `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified` datetime NULL DEFAULT NULL, - `deleted` datetime NULL DEFAULT NULL, - `hash` varchar(50) NOT NULL DEFAULT '', - `attempts` int(1) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`), - KEY `memid` (`memid`), - KEY `stats_email_hash` (`hash`), - KEY `stats_email_deleted` (`deleted`), - KEY `email` (`email`) -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `emailPinglog`; -CREATE TABLE `emailPinglog` ( - `when` datetime NOT NULL, - `uid` int(11) NOT NULL, - `email` varchar(255) NOT NULL, - `type` enum('fast', 'active') NOT NULL, - `status` enum('open', 'success', 'failed') NOT NULL, - `result` varchar(255) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `pingconfig`; -CREATE TABLE `pingconfig` ( - `id` int(13) NOT NULL AUTO_INCREMENT, - `domainid` int(11) NOT NULL, - `type` enum('email', 'ssl', 'http', 'dns') NOT NULL, - `info` varchar(255) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - -DROP TABLE IF EXISTS `domainPinglog`; -CREATE TABLE `domainPinglog` ( - `when` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `configId` int(13) NOT NULL, - `state` enum('open', 'success', 'failed') NOT NULL, - `challenge` varchar(16), - `result` varchar(255) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `baddomains`; -CREATE TABLE `baddomains` ( - `domain` varchar(255) NOT NULL DEFAULT '' -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - -DROP TABLE IF EXISTS `alerts`; -CREATE TABLE `alerts` ( - `memid` int(11) NOT NULL DEFAULT '0', - `general` tinyint(1) NOT NULL DEFAULT '0', - `country` tinyint(1) NOT NULL DEFAULT '0', - `regional` tinyint(1) NOT NULL DEFAULT '0', - `radius` tinyint(1) NOT NULL DEFAULT '0', - PRIMARY KEY (`memid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `user_agreements`; -CREATE TABLE `user_agreements` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `memid` int(11) NOT NULL, - `secmemid` int(11) DEFAULT NULL, - `document` varchar(50) DEFAULT NULL, - `date` datetime DEFAULT NULL, - `active` int(1) NOT NULL, - `method` varchar(100) NOT NULL, - `comment` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `certs`; -CREATE TABLE `certs` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `memid` int(11) NOT NULL DEFAULT '0', - `serial` varchar(50) NOT NULL DEFAULT '', - `keytype` char(2) NOT NULL DEFAULT 'NS', - `codesign` tinyint(1) NOT NULL DEFAULT '0', - `md` enum('md5','sha1','sha256','sha512') NOT NULL DEFAULT 'sha512', - `profile` int(3) NOT NULL, - `caid` int(3) NULL DEFAULT NULL, - - `csr_name` varchar(255) NOT NULL DEFAULT '', - `csr_type` enum('CSR', 'SPKAC') NOT NULL, - `crt_name` varchar(255) NOT NULL DEFAULT '', - `created` timestamp NULL DEFAULT NULL, - `modified` datetime NULL DEFAULT NULL, - `revoked` datetime NULL DEFAULT NULL, - `expire` datetime NULL DEFAULT NULL, - `renewed` tinyint(1) NOT NULL DEFAULT '0', - `disablelogin` int(1) NOT NULL DEFAULT '0', - `pkhash` char(40) DEFAULT NULL, - `certhash` char(40) DEFAULT NULL, - `description` varchar(100) NOT NULL DEFAULT '', - PRIMARY KEY (`id`), - KEY `emailcerts_pkhash` (`pkhash`), - KEY `revoked` (`revoked`), - KEY `created` (`created`), - KEY `memid` (`memid`), - KEY `serial` (`serial`), - KEY `stats_emailcerts_expire` (`expire`), - KEY `emailcrt` (`crt_name`) -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; - - -DROP TABLE IF EXISTS `certAvas`; -CREATE TABLE `certAvas` ( - `certid` int(11) NOT NULL, - `name` varchar(20) NOT NULL, - `value` varchar(255) NOT NULL, - - PRIMARY KEY (`certid`, `name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `clientcerts`; -CREATE TABLE `clientcerts` ( - `id` int(11) NOT NULL, - `disablelogin` int(1) NOT NULL DEFAULT '0', - - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `profiles`; -CREATE TABLE `profiles` ( - `id` int(3) NOT NULL AUTO_INCREMENT, - `keyname` varchar(60) NOT NULL, - `include` varchar(200) NOT NULL, - `requires` varchar(200) NOT NULL, - `name` varchar(100) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE (`keyname`) -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `subjectAlternativeNames`; -CREATE TABLE `subjectAlternativeNames` ( - `certId` int(11) NOT NULL, - `contents` varchar(50) NOT NULL, - `type` enum('email','DNS') NOT NULL -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `cacerts`; -CREATE TABLE `cacerts` ( - `id` int(3) NOT NULL AUTO_INCREMENT, - `keyname` varchar(60) NOT NULL, - `link` varchar(160) NOT NULL, - `parentRoot` int(3) NOT NULL, - `validFrom` datetime NULL DEFAULT NULL, - `validTo` datetime NULL DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE (`keyname`) -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; - - -DROP TABLE IF EXISTS `jobs`; -CREATE TABLE `jobs` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `targetId` int(11) NOT NULL, - `task` enum('sign','revoke') NOT NULL, - `state` enum('open', 'done', 'error') NOT NULL DEFAULT 'open', - `warning` int(2) NOT NULL DEFAULT '0', - `executeFrom` DATE, - `executeTo` VARCHAR(11), - PRIMARY KEY (`id`), - KEY `state` (`state`) -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; - - -DROP TABLE IF EXISTS `notary`; -CREATE TABLE `notary` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `from` int(11) NOT NULL DEFAULT '0', - `to` int(11) NOT NULL DEFAULT '0', +DROP TABLE IF EXISTS "certOwners"; +CREATE TABLE "certOwners" ( + "id" serial NOT NULL, + "created" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "modified" timestamp NULL DEFAULT NULL, + "deleted" timestamp NULL DEFAULT NULL, + PRIMARY KEY ("id") +); + +DROP TABLE IF EXISTS "users"; +CREATE TABLE "users" ( + "id" int NOT NULL, + "email" varchar(255) NOT NULL DEFAULT '', + "password" varchar(255) NOT NULL DEFAULT '', + "fname" varchar(255) NOT NULL DEFAULT '', + "mname" varchar(255) NOT NULL DEFAULT '', + "lname" varchar(255) NOT NULL DEFAULT '', + "suffix" varchar(50) NOT NULL DEFAULT '', + "dob" date NOT NULL, + "verified" boolean NOT NULL DEFAULT 'false', + "ccid" int NOT NULL DEFAULT '0', + "regid" int NOT NULL DEFAULT '0', + "locid" int NOT NULL DEFAULT '0', + "listme" boolean NOT NULL DEFAULT 'false', + "contactinfo" varchar(255) NOT NULL DEFAULT '', + "language" varchar(5) NOT NULL DEFAULT '', + PRIMARY KEY ("id") +); +CREATE INDEX ON "users" ("ccid"); +CREATE INDEX ON "users" ("regid"); +CREATE INDEX ON "users" ("locid"); +CREATE INDEX ON "users" ("email"); +CREATE INDEX ON "users" ("verified"); + + +DROP TABLE IF EXISTS "organisations"; +CREATE TABLE IF NOT EXISTS "organisations" ( + "id" int NOT NULL, + "name" varchar(100) NOT NULL, + "state" varchar(2) NOT NULL, + "province" varchar(100) NOT NULL, + "city" varchar(100) NOT NULL, + "contactEmail" varchar(100) NOT NULL, + "creator" int NOT NULL, + PRIMARY KEY ("id") +); + +DROP TABLE IF EXISTS "domains"; +CREATE TABLE "domains" ( + "id" serial NOT NULL, + "memid" int NOT NULL, + "domain" varchar(255) NOT NULL, + "created" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "modified" timestamp NULL DEFAULT NULL, + "deleted" timestamp NULL DEFAULT NULL, + PRIMARY KEY ("id") +); +CREATE INDEX ON "domains" ("memid"); +CREATE INDEX ON "domains" ("domain"); +CREATE INDEX ON "domains" ("deleted"); + +DROP TABLE IF EXISTS "emails"; +CREATE TABLE "emails" ( + "id" serial NOT NULL, + "memid" int NOT NULL DEFAULT '0', + "email" varchar(255) NOT NULL DEFAULT '', + "created" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "modified" timestamp NULL DEFAULT NULL, + "deleted" timestamp NULL DEFAULT NULL, + "hash" varchar(50) NOT NULL DEFAULT '', + "attempts" smallint NOT NULL DEFAULT '0', + PRIMARY KEY ("id") +); +CREATE INDEX ON "emails" ("memid"); +CREATE INDEX ON "emails" ("hash"); +CREATE INDEX ON "emails" ("deleted"); +CREATE INDEX ON "emails" ("email"); + +DROP TABLE IF EXISTS "emailPinglog"; +DROP TABLE IF EXISTS "domainPinglog"; + +DROP TYPE IF EXISTS "emailPingType"; +CREATE TYPE "emailPingType" AS ENUM ('fast', 'active'); +DROP TYPE IF EXISTS "pingState"; +CREATE TYPE "pingState" AS ENUM ('open', 'success', 'failed'); + +CREATE TABLE "emailPinglog" ( + "when" timestamp NOT NULL, + "uid" int NOT NULL, + "email" varchar(255) NOT NULL, + "type" "emailPingType" NOT NULL, + "status" "pingState" NOT NULL, + "result" varchar(255) NOT NULL +); + +DROP TABLE IF EXISTS "pingconfig"; + +DROP TYPE IF EXISTS "pingType"; +CREATE TYPE "pingType" AS ENUM ('email', 'ssl', 'http', 'dns'); + +CREATE TABLE "pingconfig" ( + "id" serial NOT NULL, + "domainid" int NOT NULL, + "type" "pingType" NOT NULL, + "info" varchar(255) NOT NULL, + PRIMARY KEY ("id") +); + + +CREATE TABLE "domainPinglog" ( + "when" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + "configId" int NOT NULL, + "state" "pingState" NOT NULL, + "challenge" varchar(16), + "result" varchar(255) +); + +DROP TABLE IF EXISTS "baddomains"; +CREATE TABLE "baddomains" ( + "domain" varchar(255) NOT NULL DEFAULT '' +); + + +DROP TABLE IF EXISTS "alerts"; +CREATE TABLE "alerts" ( + "memid" int NOT NULL DEFAULT '0', + "general" boolean NOT NULL DEFAULT 'false', + "country" boolean NOT NULL DEFAULT 'false', + "regional" boolean NOT NULL DEFAULT 'false', + "radius" boolean NOT NULL DEFAULT 'false', + PRIMARY KEY ("memid") +); + +DROP TABLE IF EXISTS "user_agreements"; +CREATE TABLE "user_agreements" ( + "id" serial NOT NULL, + "memid" int NOT NULL, + "secmemid" int DEFAULT NULL, + "document" varchar(50) DEFAULT NULL, + "date" timestamp DEFAULT NULL, + "active" boolean NOT NULL, + "method" varchar(100) NOT NULL, + "comment" varchar(100) DEFAULT NULL, + PRIMARY KEY ("id") +); + +DROP TABLE IF EXISTS "certs"; + +DROP TYPE IF EXISTS "mdType"; +CREATE TYPE "mdType" AS ENUM('md5','sha1','sha256','sha512'); + +DROP TYPE IF EXISTS "csrType"; +CREATE TYPE "csrType" AS ENUM ('CSR', 'SPKAC'); + +CREATE TABLE "certs" ( + "id" serial NOT NULL, + "memid" int NOT NULL DEFAULT '0', + "serial" varchar(50) NOT NULL DEFAULT '', + "keytype" char(2) NOT NULL DEFAULT 'NS', + "codesign" boolean NOT NULL DEFAULT 'false', + "md" "mdType" NOT NULL DEFAULT 'sha512', + "profile" int NOT NULL, + "caid" int NULL DEFAULT NULL, + + "csr_name" varchar(255) NOT NULL DEFAULT '', + "csr_type" "csrType" NOT NULL, + "crt_name" varchar(255) NOT NULL DEFAULT '', + "created" timestamp NULL DEFAULT NULL, + "modified" timestamp NULL DEFAULT NULL, + "revoked" timestamp NULL DEFAULT NULL, + "expire" timestamp NULL DEFAULT NULL, + "renewed" boolean NOT NULL DEFAULT 'false', + "disablelogin" boolean NOT NULL DEFAULT 'false', + "pkhash" char(40) DEFAULT NULL, + "certhash" char(40) DEFAULT NULL, + "description" varchar(100) NOT NULL DEFAULT '', + PRIMARY KEY ("id") +); +CREATE INDEX ON "certs" ("pkhash"); +CREATE INDEX ON "certs" ("revoked"); +CREATE INDEX ON "certs" ("created"); +CREATE INDEX ON "certs" ("memid"); +CREATE INDEX ON "certs" ("serial"); +CREATE INDEX ON "certs" ("expire"); +CREATE INDEX ON "certs" ("crt_name"); + + + +DROP TABLE IF EXISTS "certAvas"; +CREATE TABLE "certAvas" ( + "certid" int NOT NULL, + "name" varchar(20) NOT NULL, + "value" varchar(255) NOT NULL, + + PRIMARY KEY ("certid", "name") +); + +DROP TABLE IF EXISTS "clientcerts"; +CREATE TABLE "clientcerts" ( + "id" int NOT NULL, + "disablelogin" boolean NOT NULL DEFAULT 'false', + + PRIMARY KEY ("id") +); + +DROP TABLE IF EXISTS "profiles"; +CREATE TABLE "profiles" ( + "id" serial NOT NULL, + "keyname" varchar(60) NOT NULL, + "include" varchar(200) NOT NULL, + "requires" varchar(200) NOT NULL, + "name" varchar(100) NOT NULL, + PRIMARY KEY ("id"), + UNIQUE ("keyname") +); + +DROP TABLE IF EXISTS "subjectAlternativeNames"; + +DROP TYPE IF EXISTS "SANType"; +CREATE TYPE "SANType" AS ENUM ('email', 'DNS'); + +CREATE TABLE "subjectAlternativeNames" ( + "certId" int NOT NULL, + "contents" varchar(50) NOT NULL, + "type" "SANType" NOT NULL +); + +DROP TABLE IF EXISTS "cacerts"; +CREATE TABLE "cacerts" ( + "id" serial NOT NULL, + "keyname" varchar(60) NOT NULL, + "link" varchar(160) NOT NULL, + "parentRoot" int NOT NULL, + "validFrom" timestamp NULL DEFAULT NULL, + "validTo" timestamp NULL DEFAULT NULL, + PRIMARY KEY ("id"), + UNIQUE ("keyname") +); + +DROP TABLE IF EXISTS "jobs"; + +DROP TYPE IF EXISTS "jobType"; +CREATE TYPE "jobType" AS ENUM ('sign', 'revoke'); +DROP TYPE IF EXISTS "jobState"; +CREATE TYPE "jobState" AS ENUM ('open', 'done', 'error'); + + +CREATE TABLE "jobs" ( + "id" serial NOT NULL, + "targetId" int NOT NULL, + "task" "jobType" NOT NULL, + "state" "jobState" NOT NULL DEFAULT 'open', + "warning" smallint NOT NULL DEFAULT '0', + "executeFrom" DATE, + "executeTo" VARCHAR(11), + PRIMARY KEY ("id") +); + +CREATE INDEX ON "jobs" ("state"); + +DROP TABLE IF EXISTS "notary"; + +DROP TYPE IF EXISTS "notaryType"; +CREATE TYPE "notaryType" AS enum('Face to Face Meeting', 'TOPUP', 'TTP-Assisted'); + +CREATE TABLE "notary" ( + "id" serial NOT NULL, + "from" int NOT NULL DEFAULT '0', + "to" int NOT NULL DEFAULT '0', # total points that have been entered - `points` int(3) NOT NULL DEFAULT '0', + "points" int NOT NULL DEFAULT '0', # awarded and the "experience points" are calculated virtually # Face to Face is default, TOPUP is for the remaining 30Points after two TTP # TTP is default ttp assurance - `method` enum('Face to Face Meeting', 'TOPUP', 'TTP-Assisted') NOT NULL DEFAULT 'Face to Face Meeting', - `location` varchar(255) NOT NULL DEFAULT '', - `date` varchar(255) NOT NULL DEFAULT '', + "method" "notaryType" NOT NULL DEFAULT 'Face to Face Meeting', + "location" varchar(255) NOT NULL DEFAULT '', + "date" varchar(255) NOT NULL DEFAULT '', # date when assurance was entered - `when` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "when" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, #? - `expire` datetime NULL DEFAULT NULL, + "expire" timestamp NULL DEFAULT NULL, #????????????????? - `sponsor` int(11) NOT NULL DEFAULT '0', + "sponsor" int NOT NULL DEFAULT '0', # date when assurance was deleted (or 0) - `deleted` datetime NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `from` (`from`), - KEY `to` (`to`), - KEY `stats_notary_when` (`when`), - KEY `stats_notary_method` (`method`) -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; - - -DROP TABLE IF EXISTS `cats_passed`; -CREATE TABLE `cats_passed` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `user_id` int(11) NOT NULL, - `variant_id` int(11) NOT NULL, - `pass_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `test_passed` (`user_id`,`variant_id`,`pass_date`) -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; + "deleted" timestamp NULL DEFAULT NULL, + PRIMARY KEY ("id") +); + +CREATE INDEX ON "notary"("from"); +CREATE INDEX ON "notary"("to"); +CREATE INDEX ON "notary"("when"); +CREATE INDEX ON "notary"("method"); + + +DROP TABLE IF EXISTS "cats_passed"; +CREATE TABLE "cats_passed" ( + "id" serial NOT NULL, + "user_id" int NOT NULL, + "variant_id" int NOT NULL, + "pass_date" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY ("id"), + UNIQUE ("user_id","variant_id","pass_date") +); # -------------------------------------------------------- # -# Table structure for table `cats_type` +# Table structure for table "cats_type" # -DROP TABLE IF EXISTS `cats_type`; -CREATE TABLE `cats_type` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `type_text` varchar(255) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `type_text` (`type_text`) -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `arbitrations`; -CREATE TABLE IF NOT EXISTS `arbitrations` ( - `user` int(11) NOT NULL, - `arbitration` varchar(20) NOT NULL, - PRIMARY KEY (`user`,`arbitration`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `user_groups`; -CREATE TABLE IF NOT EXISTS `user_groups` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `user` int(11) NOT NULL, - `permission` enum('supporter','arbitrator','blockedassuree','blockedassurer','blockedlogin','ttp-assurer','ttp-applicant', 'codesigning', 'orgassurer') NOT NULL, - `granted` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `deleted` timestamp NULL DEFAULT NULL, - `grantedby` int(11) NOT NULL, - `revokedby` int(11) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `org_admin`; -CREATE TABLE IF NOT EXISTS `org_admin` ( - `orgid` int(11) NOT NULL, - `memid` int(11) NOT NULL, - `master` enum('y', 'n') NOT NULL, - `creator` int(11) NOT NULL, - `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `deleter` int(11) NULL DEFAULT NULL, - `deleted` timestamp NULL DEFAULT NULL, - KEY (`orgid`, `memid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `adminLog`; -CREATE TABLE `adminLog` ( - `when` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `uid` int(11) unsigned NOT NULL, - `admin` int(11) unsigned NOT NULL, - `type` varchar(100) NOT NULL DEFAULT '', - `information` varchar(50) NOT NULL DEFAULT '', - KEY (`when`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -DROP TABLE IF EXISTS `schemeVersion`; -CREATE TABLE `schemeVersion` ( - `version` int(5) NOT NULL, - PRIMARY KEY (`version`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO schemeVersion(version) VALUES(4); +DROP TABLE IF EXISTS "cats_type"; +CREATE TABLE "cats_type" ( + "id" serial NOT NULL, + "type_text" varchar(255) NOT NULL, + PRIMARY KEY ("id"), + UNIQUE ("type_text") +); + +DROP TABLE IF EXISTS "arbitrations"; +CREATE TABLE IF NOT EXISTS "arbitrations" ( + "user" int NOT NULL, + "arbitration" varchar(20) NOT NULL, + PRIMARY KEY ("user","arbitration") +); + +DROP TABLE IF EXISTS "user_groups"; + +DROP TYPE IF EXISTS "userGroup"; +CREATE TYPE "userGroup" AS enum('supporter','arbitrator','blockedassuree','blockedassurer','blockedlogin','ttp-assurer','ttp-applicant', 'codesigning', 'orgassurer'); + +CREATE TABLE IF NOT EXISTS "user_groups" ( + "id" serial NOT NULL, + "user" int NOT NULL, + "permission" "userGroup" NOT NULL, + "granted" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" timestamp NULL DEFAULT NULL, + "grantedby" int NOT NULL, + "revokedby" int DEFAULT NULL, + PRIMARY KEY ("id") +); + +DROP TABLE IF EXISTS "org_admin"; + +DROP TYPE IF EXISTS "yesno"; +CREATE TYPE "yesno" AS enum('y', 'n'); + + +CREATE TABLE IF NOT EXISTS "org_admin" ( + "orgid" int NOT NULL, + "memid" int NOT NULL, + "master" "yesno" NOT NULL, + "creator" int NOT NULL, + "created" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleter" int NULL DEFAULT NULL, + "deleted" timestamp NULL DEFAULT NULL +); +CREATE INDEX ON "org_admin"("orgid", "memid"); + + +DROP TABLE IF EXISTS "adminLog"; +CREATE TABLE "adminLog" ( + "when" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "uid" int NOT NULL, + "admin" int NOT NULL, + "type" varchar(100) NOT NULL DEFAULT '', + "information" varchar(50) NOT NULL DEFAULT '' +); +CREATE INDEX ON "adminLog"("when"); + + +DROP TABLE IF EXISTS "schemeVersion"; +CREATE TABLE "schemeVersion" ( + "version" smallint NOT NULL, + PRIMARY KEY ("version") +); +INSERT INTO "schemeVersion" (version) VALUES(4);