55 lines
1.7 KiB
SQL
55 lines
1.7 KiB
SQL
CREATE DATABASE IF NOT EXISTS vpr DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
USE vpr;
|
|
|
|
--Jakob
|
|
DROP TABLE IF EXISTS campaign_notes;
|
|
DROP TABLE IF EXISTS campaign_characters;
|
|
DROP TABLE IF EXISTS campaigns;
|
|
DROP TABLE IF EXISTS characters;
|
|
DROP TABLE IF EXISTS sessions;
|
|
DROP TABLE IF EXISTS users;
|
|
|
|
-- User
|
|
CREATE TABLE users (
|
|
user_id INT AUTO_INCREMENT PRIMARY KEY,
|
|
username VARCHAR(40) NOT NULL UNIQUE,
|
|
pass_hash VARCHAR(255) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE campaigns (
|
|
campaign_id INT AUTO_INCREMENT PRIMARY KEY,
|
|
owner_user_id INT NOT NULL,
|
|
title VARCHAR(100) NOT NULL DEFAULT 'Meine Kampagne',
|
|
description TEXT NULL,
|
|
UNIQUE KEY ux_owner_one_campaign (owner_user_id),
|
|
CONSTRAINT fk_campaign_owner FOREIGN KEY (owner_user_id)
|
|
REFERENCES users(user_id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE characters (
|
|
character_id INT AUTO_INCREMENT PRIMARY KEY,
|
|
user_id INT NOT NULL,
|
|
campaign_id INT NULL,
|
|
name VARCHAR(50) NOT NULL,
|
|
CONSTRAINT fk_char_user FOREIGN KEY (user_id)
|
|
REFERENCES users(user_id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_char_campaign FOREIGN KEY (campaign_id)
|
|
REFERENCES campaigns(campaign_id) ON DELETE SET NULL,
|
|
CONSTRAINT ux_user_char UNIQUE (user_id, name)
|
|
);
|
|
|
|
CREATE TABLE sessions (
|
|
session_id INT AUTO_INCREMENT PRIMARY KEY,
|
|
title VARCHAR(100) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE campaign_notes (
|
|
note_id INT AUTO_INCREMENT PRIMARY KEY,
|
|
campaign_id INT NOT NULL,
|
|
user_id INT NOT NULL,
|
|
text TEXT NOT NULL,
|
|
CONSTRAINT fk_note_campaign FOREIGN KEY (campaign_id)
|
|
REFERENCES campaigns(campaign_id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_note_user FOREIGN KEY (user_id)
|
|
REFERENCES users(user_id) ON DELETE CASCADE
|
|
); |