Created
November 18, 2023 22:02
-
-
Save nihat-js/1bab3537fb7503c01e5aa6efa84ba0c6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE TABLE users ( | |
id INTEGER AUTO_INCREMENT PRIMARY KEY, | |
username VARCHAR(255) UNIQUE NOT NULL, | |
created_at TIMESTAMP DEFAULT NOW() | |
); | |
CREATE TABLE photos ( | |
id INTEGER AUTO_INCREMENT PRIMARY KEY, | |
image_url VARCHAR(255) NOT NULL, | |
user_id INTEGER NOT NULL, | |
created_at TIMESTAMP DEFAULT NOW(), | |
FOREIGN KEY(user_id) REFERENCES users(id) | |
); | |
CREATE TABLE comments ( | |
id INTEGER AUTO_INCREMENT PRIMARY KEY, | |
comment_text VARCHAR(255) NOT NULL, | |
photo_id INTEGER NOT NULL, | |
user_id INTEGER NOT NULL, | |
created_at TIMESTAMP DEFAULT NOW(), | |
FOREIGN KEY(photo_id) REFERENCES photos(id), | |
FOREIGN KEY(user_id) REFERENCES users(id) | |
); | |
CREATE TABLE likes ( | |
user_id INTEGER NOT NULL, | |
photo_id INTEGER NOT NULL, | |
created_at TIMESTAMP DEFAULT NOW(), | |
FOREIGN KEY(user_id) REFERENCES users(id), | |
FOREIGN KEY(photo_id) REFERENCES photos(id), | |
PRIMARY KEY(user_id, photo_id) | |
); | |
CREATE TABLE follows ( | |
follower_id INTEGER NOT NULL, | |
followee_id INTEGER NOT NULL, | |
created_at TIMESTAMP DEFAULT NOW(), | |
FOREIGN KEY(follower_id) REFERENCES users(id), | |
FOREIGN KEY(followee_id) REFERENCES users(id), | |
PRIMARY KEY(follower_id, followee_id) | |
); | |
CREATE TABLE tags ( | |
id INTEGER AUTO_INCREMENT PRIMARY KEY, | |
tag_name VARCHAR(255) UNIQUE, | |
created_at TIMESTAMP DEFAULT NOW() | |
); | |
CREATE TABLE photo_tags ( | |
photo_id INTEGER NOT NULL, | |
tag_id INTEGER NOT NULL, | |
FOREIGN KEY(photo_id) REFERENCES photos(id), | |
FOREIGN KEY(tag_id) REFERENCES tags(id), | |
PRIMARY KEY(photo_id, tag_id) | |
); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment