Skip to content

Commit 2d10b4f

Browse files
committed
database added
1 parent ecef4d4 commit 2d10b4f

File tree

3 files changed

+169
-0
lines changed

3 files changed

+169
-0
lines changed

database/MySQL.sql

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
CREATE TABLE IF NOT EXISTS `users` (
2+
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
3+
`email` varchar(249) COLLATE utf8mb4_unicode_ci NOT NULL,
4+
`password` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,
5+
`username` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
6+
`status` tinyint(2) unsigned NOT NULL DEFAULT '0',
7+
`verified` tinyint(1) unsigned NOT NULL DEFAULT '0',
8+
`resettable` tinyint(1) unsigned NOT NULL DEFAULT '1',
9+
`roles_mask` int(10) unsigned NOT NULL DEFAULT '0',
10+
`registered` int(10) unsigned NOT NULL,
11+
`last_login` int(10) unsigned DEFAULT NULL,
12+
`force_logout` mediumint(7) unsigned NOT NULL DEFAULT '0',
13+
PRIMARY KEY (`id`),
14+
UNIQUE KEY `email` (`email`)
15+
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
16+
17+
CREATE TABLE IF NOT EXISTS `users_confirmations` (
18+
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
19+
`user_id` int(10) unsigned NOT NULL,
20+
`email` varchar(249) COLLATE utf8mb4_unicode_ci NOT NULL,
21+
`selector` varchar(16) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,
22+
`token` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,
23+
`expires` int(10) unsigned NOT NULL,
24+
PRIMARY KEY (`id`),
25+
UNIQUE KEY `selector` (`selector`),
26+
KEY `email_expires` (`email`,`expires`),
27+
KEY `user_id` (`user_id`)
28+
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
29+
30+
CREATE TABLE IF NOT EXISTS `users_remembered` (
31+
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
32+
`user` int(10) unsigned NOT NULL,
33+
`selector` varchar(24) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,
34+
`token` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,
35+
`expires` int(10) unsigned NOT NULL,
36+
PRIMARY KEY (`id`),
37+
UNIQUE KEY `selector` (`selector`),
38+
KEY `user` (`user`)
39+
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
40+
41+
CREATE TABLE IF NOT EXISTS `users_resets` (
42+
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
43+
`user` int(10) unsigned NOT NULL,
44+
`selector` varchar(20) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,
45+
`token` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,
46+
`expires` int(10) unsigned NOT NULL,
47+
PRIMARY KEY (`id`),
48+
UNIQUE KEY `selector` (`selector`),
49+
KEY `user_expires` (`user`,`expires`)
50+
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
51+
52+
CREATE TABLE IF NOT EXISTS `users_throttling` (
53+
`bucket` varchar(44) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,
54+
`tokens` float unsigned NOT NULL,
55+
`replenished_at` int(10) unsigned NOT NULL,
56+
`expires_at` int(10) unsigned NOT NULL,
57+
PRIMARY KEY (`bucket`),
58+
KEY `expires_at` (`expires_at`)
59+
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

database/PostgreSQL.sql

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
BEGIN;
2+
3+
CREATE TABLE IF NOT EXISTS "users" (
4+
"id" SERIAL PRIMARY KEY CHECK ("id" >= 0),
5+
"email" VARCHAR(249) UNIQUE NOT NULL,
6+
"password" VARCHAR(255) NOT NULL,
7+
"username" VARCHAR(100) DEFAULT NULL,
8+
"status" SMALLINT NOT NULL DEFAULT '0' CHECK ("status" >= 0),
9+
"verified" SMALLINT NOT NULL DEFAULT '0' CHECK ("verified" >= 0),
10+
"resettable" SMALLINT NOT NULL DEFAULT '1' CHECK ("resettable" >= 0),
11+
"roles_mask" INTEGER NOT NULL DEFAULT '0' CHECK ("roles_mask" >= 0),
12+
"registered" INTEGER NOT NULL CHECK ("registered" >= 0),
13+
"last_login" INTEGER DEFAULT NULL CHECK ("last_login" >= 0),
14+
"force_logout" INTEGER NOT NULL DEFAULT '0' CHECK ("force_logout" >= 0)
15+
);
16+
17+
CREATE TABLE IF NOT EXISTS "users_confirmations" (
18+
"id" SERIAL PRIMARY KEY CHECK ("id" >= 0),
19+
"user_id" INTEGER NOT NULL CHECK ("user_id" >= 0),
20+
"email" VARCHAR(249) NOT NULL,
21+
"selector" VARCHAR(16) UNIQUE NOT NULL,
22+
"token" VARCHAR(255) NOT NULL,
23+
"expires" INTEGER NOT NULL CHECK ("expires" >= 0)
24+
);
25+
CREATE INDEX IF NOT EXISTS "email_expires" ON "users_confirmations" ("email", "expires");
26+
CREATE INDEX IF NOT EXISTS "user_id" ON "users_confirmations" ("user_id");
27+
28+
CREATE TABLE IF NOT EXISTS "users_remembered" (
29+
"id" BIGSERIAL PRIMARY KEY CHECK ("id" >= 0),
30+
"user" INTEGER NOT NULL CHECK ("user" >= 0),
31+
"selector" VARCHAR(24) UNIQUE NOT NULL,
32+
"token" VARCHAR(255) NOT NULL,
33+
"expires" INTEGER NOT NULL CHECK ("expires" >= 0)
34+
);
35+
CREATE INDEX IF NOT EXISTS "user" ON "users_remembered" ("user");
36+
37+
CREATE TABLE IF NOT EXISTS "users_resets" (
38+
"id" BIGSERIAL PRIMARY KEY CHECK ("id" >= 0),
39+
"user" INTEGER NOT NULL CHECK ("user" >= 0),
40+
"selector" VARCHAR(20) UNIQUE NOT NULL,
41+
"token" VARCHAR(255) NOT NULL,
42+
"expires" INTEGER NOT NULL CHECK ("expires" >= 0)
43+
);
44+
CREATE INDEX IF NOT EXISTS "user_expires" ON "users_resets" ("user", "expires");
45+
46+
CREATE TABLE IF NOT EXISTS "users_throttling" (
47+
"bucket" VARCHAR(44) PRIMARY KEY,
48+
"tokens" REAL NOT NULL CHECK ("tokens" >= 0),
49+
"replenished_at" INTEGER NOT NULL CHECK ("replenished_at" >= 0),
50+
"expires_at" INTEGER NOT NULL CHECK ("expires_at" >= 0)
51+
);
52+
CREATE INDEX IF NOT EXISTS "expires_at" ON "users_throttling" ("expires_at");
53+
54+
COMMIT;

database/SQLite.sql

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
PRAGMA foreign_keys = OFF;
2+
3+
CREATE TABLE "users" (
4+
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL CHECK ("id" >= 0),
5+
"email" VARCHAR(249) NOT NULL,
6+
"password" VARCHAR(255) NOT NULL,
7+
"username" VARCHAR(100) DEFAULT NULL,
8+
"status" INTEGER NOT NULL CHECK ("status" >= 0) DEFAULT "0",
9+
"verified" INTEGER NOT NULL CHECK ("verified" >= 0) DEFAULT "0",
10+
"resettable" INTEGER NOT NULL CHECK ("resettable" >= 0) DEFAULT "1",
11+
"roles_mask" INTEGER NOT NULL CHECK ("roles_mask" >= 0) DEFAULT "0",
12+
"registered" INTEGER NOT NULL CHECK ("registered" >= 0),
13+
"last_login" INTEGER CHECK ("last_login" >= 0) DEFAULT NULL,
14+
"force_logout" INTEGER NOT NULL CHECK ("force_logout" >= 0) DEFAULT "0",
15+
CONSTRAINT "email" UNIQUE ("email")
16+
);
17+
18+
CREATE TABLE "users_confirmations" (
19+
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL CHECK ("id" >= 0),
20+
"user_id" INTEGER NOT NULL CHECK ("user_id" >= 0),
21+
"email" VARCHAR(249) NOT NULL,
22+
"selector" VARCHAR(16) NOT NULL,
23+
"token" VARCHAR(255) NOT NULL,
24+
"expires" INTEGER NOT NULL CHECK ("expires" >= 0),
25+
CONSTRAINT "selector" UNIQUE ("selector")
26+
);
27+
CREATE INDEX "users_confirmations.email_expires" ON "users_confirmations" ("email", "expires");
28+
CREATE INDEX "users_confirmations.user_id" ON "users_confirmations" ("user_id");
29+
30+
CREATE TABLE "users_remembered" (
31+
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL CHECK ("id" >= 0),
32+
"user" INTEGER NOT NULL CHECK ("user" >= 0),
33+
"selector" VARCHAR(24) NOT NULL,
34+
"token" VARCHAR(255) NOT NULL,
35+
"expires" INTEGER NOT NULL CHECK ("expires" >= 0),
36+
CONSTRAINT "selector" UNIQUE ("selector")
37+
);
38+
CREATE INDEX "users_remembered.user" ON "users_remembered" ("user");
39+
40+
CREATE TABLE "users_resets" (
41+
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL CHECK ("id" >= 0),
42+
"user" INTEGER NOT NULL CHECK ("user" >= 0),
43+
"selector" VARCHAR(20) NOT NULL,
44+
"token" VARCHAR(255) NOT NULL,
45+
"expires" INTEGER NOT NULL CHECK ("expires" >= 0),
46+
CONSTRAINT "selector" UNIQUE ("selector")
47+
);
48+
CREATE INDEX "users_resets.user_expires" ON "users_resets" ("user", "expires");
49+
50+
CREATE TABLE "users_throttling" (
51+
"bucket" VARCHAR(44) PRIMARY KEY NOT NULL,
52+
"tokens" REAL NOT NULL CHECK ("tokens" >= 0),
53+
"replenished_at" INTEGER NOT NULL CHECK ("replenished_at" >= 0),
54+
"expires_at" INTEGER NOT NULL CHECK ("expires_at" >= 0)
55+
);
56+
CREATE INDEX "users_throttling.expires_at" ON "users_throttling" ("expires_at");

0 commit comments

Comments
 (0)