diff --git a/create_db.sql b/create_db.sql new file mode 100644 index 0000000..23af5da --- /dev/null +++ b/create_db.sql @@ -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) +);