diff options
Diffstat (limited to 'migrations/00-initial.sql')
| -rw-r--r-- | migrations/00-initial.sql | 45 |
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) +); |
