MySQL
Tables SCHEMA
CREATE TABLE player (
id INT AUTO_INCREMENT,
username VARCHAR(60) NOT NULL,
email VARCHAR(60) NOT NULL UNIQUE,
password VARCHAR(60) NOT NULL,
role INT DEFAULT 1,
created_at TIMESTAMP DEFAULT NOW(),
PRIMARY KEY (id)
);
CREATE TABLE campaigns (
id VARCHAR(60) NOT NULL,
userid INT NOT NULL,
name VARCHAR(60) NOT NULL,
created_at TIMESTAMP DEFAULT NOW(),
PRIMARY KEY (id),
FOREIGN KEY (userid) REFERENCES player (id) ON DELETE CASCADE
);
CREATE TABLE players_campaigns (
userid INT NOT NULL,
campaignid VARCHAR(60) NOT NULL,
created_at TIMESTAMP DEFAULT NOW(),
PRIMARY KEY (userid, campaignid),
FOREIGN KEY (userid) REFERENCES player (id) ON DELETE CASCADE,
FOREIGN KEY (campaignid) REFERENCES campaigns (id) ON DELETE CASCADE
);
CREATE TABLE discussions (
id INT AUTO_INCREMENT,
userid INT NOT NULL,
campaignid VARCHAR(60) NOT NULL,
image_url VARCHAR(256) NOT NULL,
caption VARCHAR(2000) NOT NULL,
created_at TIMESTAMP DEFAULT NOW(),
PRIMARY KEY (id),
FOREIGN KEY (userid) REFERENCES player (id) ON DELETE CASCADE,
FOREIGN KEY (campaignid) REFERENCES campaigns (id) ON DELETE CASCADE
);