Add setup script for DB
This commit is contained in:
		
							
								
								
									
										50
									
								
								create_db.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								create_db.sql
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					DROP TABLE IF EXISTS articles_tags;
 | 
				
			||||||
 | 
					DROP TABLE IF EXISTS tags;
 | 
				
			||||||
 | 
					DROP TABLE IF EXISTS articles;
 | 
				
			||||||
 | 
					DROP TABLE IF EXISTS issues;
 | 
				
			||||||
 | 
					DROP TABLE IF EXISTS users;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE users (
 | 
				
			||||||
 | 
					    id          INT         AUTO_INCREMENT,
 | 
				
			||||||
 | 
					    username    VARCHAR(15) NOT NULL UNIQUE,
 | 
				
			||||||
 | 
					    password    VARCHAR(60) NOT NULL,
 | 
				
			||||||
 | 
					    first_name  VARCHAR(50) NOT NULL,
 | 
				
			||||||
 | 
					    last_name   VARCHAR(50) NOT NULL,
 | 
				
			||||||
 | 
					    role        INT         NOT NULL,
 | 
				
			||||||
 | 
					    PRIMARY KEY(id)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE issues (
 | 
				
			||||||
 | 
					    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,
 | 
				
			||||||
 | 
					    description TEXT            NOT NULL,
 | 
				
			||||||
 | 
					    content     TEXT            NOT NULL,
 | 
				
			||||||
 | 
					    published   BOOL            NOT NULL,
 | 
				
			||||||
 | 
					    rejected    BOOL            NOT NULL,
 | 
				
			||||||
 | 
					    author_id   INT             NOT NULL,
 | 
				
			||||||
 | 
					    issue_id    INT             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(15) NOT NULL UNIQUE,
 | 
				
			||||||
 | 
					    PRIMARY KEY(id)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE articles_tags (
 | 
				
			||||||
 | 
					    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