aboutsummaryrefslogtreecommitdiff
path: root/migrations/00-initial.sql
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2025-01-18 20:40:37 +0200
committerKamen Mladenov <kamen@syndamia.com>2025-01-19 07:46:17 +0200
commitabbb2450772fc4813268ea5482d8805c42e5bc98 (patch)
tree8b6cd4347e41ed7f1dd3e1a441093497296ed71a /migrations/00-initial.sql
parent1a933680ca55543c5e15a7f56606a920991c5ae8 (diff)
downloadnowayforward_human-abbb2450772fc4813268ea5482d8805c42e5bc98.tar
nowayforward_human-abbb2450772fc4813268ea5482d8805c42e5bc98.tar.gz
nowayforward_human-abbb2450772fc4813268ea5482d8805c42e5bc98.zip
feat(migrations): Add anonymous user
Diffstat (limited to 'migrations/00-initial.sql')
-rw-r--r--migrations/00-initial.sql45
1 files changed, 45 insertions, 0 deletions
diff --git a/migrations/00-initial.sql b/migrations/00-initial.sql
new file mode 100644
index 0000000..8ac5ac0
--- /dev/null
+++ b/migrations/00-initial.sql
@@ -0,0 +1,45 @@
+CREATE DATABASE IF NOT EXISTS nwfh;
+USE nwfh;
+
+CREATE TABLE IF NOT EXISTS Users (
+ UID INT NOT NULL AUTO_INCREMENT,
+ Username VARCHAR(50) NOT NULL UNIQUE,
+ Password VARCHAR(50) NOT NULL,
+ Role ENUM('User', 'Admin') NOT NULL,
+ PRIMARY KEY (UID)
+);
+
+CREATE TABLE IF NOT EXISTS Cookies (
+ UID INT NOT NULL AUTO_INCREMENT,
+ Token CHAR(32) NOT NULL,
+ Expires DATETIME,
+ PRIMARY KEY (UID, Token),
+ FOREIGN KEY (UID) REFERENCES Users(UID)
+);
+
+CREATE TABLE IF NOT EXISTS Webpage (
+ WID INT NOT NULL AUTO_INCREMENT,
+ Path VARCHAR(512) NOT NULL UNIQUE,
+ URL VARCHAR(512) NOT NULL,
+ Date DATETIME NOT NULL,
+ Visits INT NOT NULL,
+ RequesterUID INT NOT NULL,
+ PRIMARY KEY (WID),
+ FOREIGN KEY (RequesterUID) REFERENCES Users(UID)
+);
+
+CREATE TABLE IF NOT EXISTS ArchiveLists (
+ LID INT NOT NULL AUTO_INCREMENT,
+ AuthorUID INT NOT NULL,
+ Name VARCHAR(64) NOT NULL,
+ Description VARCHAR(255),
+ PRIMARY KEY (LID),
+ FOREIGN KEY (AuthorUID) REFERENCES Users(UID)
+);
+
+CREATE TABLE IF NOT EXISTS ArchiveListsWebpages (
+ WID INT NOT NULL,
+ LID INT NOT NULL,
+ Position INT NOT NULL,
+ PRIMARY KEY (WID, LID)
+);