Adapt DB layout to multiple authors and contributors
This commit is contained in:
parent
485eaaca70
commit
eb8e14ff6d
@ -5,50 +5,65 @@ DROP TABLE IF EXISTS issues;
|
|||||||
DROP TABLE IF EXISTS users;
|
DROP TABLE IF EXISTS users;
|
||||||
|
|
||||||
CREATE TABLE users (
|
CREATE TABLE users (
|
||||||
id INT AUTO_INCREMENT,
|
id INT AUTO_INCREMENT,
|
||||||
username VARCHAR(255) NOT NULL UNIQUE,
|
username VARCHAR(255) NOT NULL UNIQUE,
|
||||||
password VARCHAR(60) NOT NULL,
|
password VARCHAR(60) NOT NULL,
|
||||||
first_name VARCHAR(255) NOT NULL,
|
first_name VARCHAR(255) NOT NULL,
|
||||||
last_name VARCHAR(255) NOT NULL,
|
last_name VARCHAR(255) NOT NULL,
|
||||||
email VARCHAR(255) NOT NULL,
|
email VARCHAR(255) NOT NULL,
|
||||||
profile_pic_link VARCHAR(255),
|
profile_pic_link VARCHAR(255),
|
||||||
role INT NOT NULL,
|
role INT NOT NULL,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE issues (
|
CREATE TABLE issues (
|
||||||
id INT AUTO_INCREMENT,
|
id INT AUTO_INCREMENT,
|
||||||
published BOOL NOT NULL,
|
published BOOL NOT NULL,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE articles (
|
CREATE TABLE articles (
|
||||||
id INT AUTO_INCREMENT,
|
id INT AUTO_INCREMENT,
|
||||||
title VARCHAR(255) NOT NULL,
|
title VARCHAR(255) NOT NULL,
|
||||||
created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
banner_link VARCHAR(255),
|
banner_link VARCHAR(255),
|
||||||
summary TEXT NOT NULL,
|
summary TEXT NOT NULL,
|
||||||
published BOOL NOT NULL,
|
published BOOL NOT NULL,
|
||||||
rejected BOOL NOT NULL,
|
rejected BOOL NOT NULL,
|
||||||
author_id INT NOT NULL,
|
issue_id INT NOT NULL,
|
||||||
issue_id INT NOT NULL,
|
edited_id INT,
|
||||||
edited_id INT,
|
is_in_issue BOOL NOT NULL,
|
||||||
is_in_issue BOOL NOT NULL,
|
auto_generated BOOL NOT NULL,
|
||||||
auto_generated BOOL NOT NULL,
|
|
||||||
PRIMARY KEY (id),
|
PRIMARY KEY (id),
|
||||||
FOREIGN KEY (author_id) REFERENCES users (id),
|
FOREIGN KEY (author_id) REFERENCES users (id),
|
||||||
FOREIGN KEY (issue_id) REFERENCES issues (id)
|
FOREIGN KEY (issue_id) REFERENCES issues (id)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE tags (
|
CREATE TABLE tags (
|
||||||
id INT AUTO_INCREMENT,
|
id INT AUTO_INCREMENT,
|
||||||
name VARCHAR(50) NOT NULL UNIQUE,
|
name VARCHAR(50) NOT NULL UNIQUE,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE articles_authors (
|
||||||
|
article_id INT,
|
||||||
|
author_id INT,
|
||||||
|
PRIMARY KEY (article_id, author_id),
|
||||||
|
FOREIGN KEY (article_id) REFERENCES articles (id),
|
||||||
|
FOREIGN KEY (author_id) REFERENCES users (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE articles_contributors (
|
||||||
|
article_id INT,
|
||||||
|
contributor_id INT,
|
||||||
|
PRIMARY KEY (article_id, contributor_id),
|
||||||
|
FOREIGN KEY (article_id) REFERENCES articles (id),
|
||||||
|
FOREIGN KEY (contributor_id) REFERENCES users (id)
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TABLE articles_tags (
|
CREATE TABLE articles_tags (
|
||||||
article_id INT,
|
article_id INT,
|
||||||
tag_id INT,
|
tag_id INT,
|
||||||
PRIMARY KEY (article_id, tag_id),
|
PRIMARY KEY (article_id, tag_id),
|
||||||
FOREIGN KEY (article_id) REFERENCES articles (id),
|
FOREIGN KEY (article_id) REFERENCES articles (id),
|
||||||
FOREIGN KEY (tag_id) REFERENCES tags (id)
|
FOREIGN KEY (tag_id) REFERENCES tags (id)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user