forked from jason/cpolis
		
	Adapt DB layout to multiple authors and contributors
This commit is contained in:
		@@ -5,50 +5,65 @@ DROP TABLE IF EXISTS issues;
 | 
			
		||||
DROP TABLE IF EXISTS users;
 | 
			
		||||
 | 
			
		||||
CREATE TABLE users (
 | 
			
		||||
    id                  INT             AUTO_INCREMENT,
 | 
			
		||||
    username            VARCHAR(255)    NOT NULL UNIQUE,
 | 
			
		||||
    password            VARCHAR(60)     NOT NULL,
 | 
			
		||||
    first_name          VARCHAR(255)    NOT NULL,
 | 
			
		||||
    last_name           VARCHAR(255)    NOT NULL,
 | 
			
		||||
    email               VARCHAR(255)    NOT NULL,
 | 
			
		||||
    profile_pic_link    VARCHAR(255),
 | 
			
		||||
    role                INT             NOT NULL,
 | 
			
		||||
    id INT AUTO_INCREMENT,
 | 
			
		||||
    username VARCHAR(255) NOT NULL UNIQUE,
 | 
			
		||||
    password VARCHAR(60) NOT NULL,
 | 
			
		||||
    first_name VARCHAR(255) NOT NULL,
 | 
			
		||||
    last_name VARCHAR(255) NOT NULL,
 | 
			
		||||
    email VARCHAR(255) NOT NULL,
 | 
			
		||||
    profile_pic_link VARCHAR(255),
 | 
			
		||||
    role INT NOT NULL,
 | 
			
		||||
    PRIMARY KEY (id)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE issues (
 | 
			
		||||
    id          INT     AUTO_INCREMENT,
 | 
			
		||||
    published   BOOL    NOT NULL,
 | 
			
		||||
    id INT AUTO_INCREMENT,
 | 
			
		||||
    published BOOL NOT NULL,
 | 
			
		||||
    PRIMARY KEY (id)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE articles (
 | 
			
		||||
    id              INT             AUTO_INCREMENT,
 | 
			
		||||
    title           VARCHAR(255)    NOT NULL,
 | 
			
		||||
    created         TIMESTAMP       DEFAULT CURRENT_TIMESTAMP,
 | 
			
		||||
    banner_link     VARCHAR(255),
 | 
			
		||||
    summary         TEXT            NOT NULL,
 | 
			
		||||
    published       BOOL            NOT NULL,
 | 
			
		||||
    rejected        BOOL            NOT NULL,
 | 
			
		||||
    author_id       INT             NOT NULL,
 | 
			
		||||
    issue_id        INT             NOT NULL,
 | 
			
		||||
    edited_id       INT,
 | 
			
		||||
    is_in_issue     BOOL            NOT NULL,
 | 
			
		||||
    auto_generated  BOOL            NOT NULL,
 | 
			
		||||
    id INT AUTO_INCREMENT,
 | 
			
		||||
    title VARCHAR(255) NOT NULL,
 | 
			
		||||
    created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
 | 
			
		||||
    banner_link VARCHAR(255),
 | 
			
		||||
    summary TEXT NOT NULL,
 | 
			
		||||
    published BOOL NOT NULL,
 | 
			
		||||
    rejected BOOL NOT NULL,
 | 
			
		||||
    issue_id INT NOT NULL,
 | 
			
		||||
    edited_id INT,
 | 
			
		||||
    is_in_issue BOOL NOT NULL,
 | 
			
		||||
    auto_generated BOOL NOT NULL,
 | 
			
		||||
    PRIMARY KEY (id),
 | 
			
		||||
    FOREIGN KEY (author_id) REFERENCES users (id),
 | 
			
		||||
    FOREIGN KEY (issue_id) REFERENCES issues (id)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE tags (
 | 
			
		||||
    id      INT         AUTO_INCREMENT,
 | 
			
		||||
    name    VARCHAR(50) NOT NULL UNIQUE,
 | 
			
		||||
    id INT AUTO_INCREMENT,
 | 
			
		||||
    name VARCHAR(50) NOT NULL UNIQUE,
 | 
			
		||||
    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 (
 | 
			
		||||
    article_id  INT,
 | 
			
		||||
    tag_id      INT,
 | 
			
		||||
    article_id INT,
 | 
			
		||||
    tag_id INT,
 | 
			
		||||
    PRIMARY KEY (article_id, tag_id),
 | 
			
		||||
    FOREIGN KEY (article_id) REFERENCES articles (id),
 | 
			
		||||
    FOREIGN KEY (tag_id) REFERENCES tags (id)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user