Skip to content

Database Schema

Yukichi Kawada edited this page Apr 6, 2018 · 17 revisions

Stories

Stories Data Type Details
id integer not null, primary key
title string not null
body text not null
author_id integer not null, foreign key (references users), indexed
image_url string
comments_count integer not null
likes_count integer not null
  • author_id: User
belongs_to :author
has_many :likes, :comments, dependent: :destroy

Comments

Comments Data Type Details
id integer not null, primary key
body text not null
author_id integer not null, foreign key (references users), indexed
story_id integer not null, foreign key (references users), indexed
likes_count integer not null
  • author_id: User
  • story_id: Story
belongs_to :author, :story

Users

Users Data Type Details
id integer not null, primary key
username string not null, indexed, unique
email string not null, indexed, unique
password_digest string not null
session_token string not null
has_many :stories, :comments, :follows, :likes, dependent: :destroy

Follows

Follows Data Type Details
id integer not null, primary key
follower_id integer not null, foreign key (references users), indexed
followee_id integer not null, foreign key (references users), indexed
  • follower_id: User
  • followee_id: User
belongs_to :follower, :followee

StoryLikes

Likes Data Type Details
id integer not null, primary key
user_id integer not null, foreign key (references users), indexed
story_id integer not null, foreign key (references users), indexed
  • user_id: User
  • story_id: Story
belongs_to :user, :story

CommentLikes

Likes Data Type Details
id integer not null, primary key
user_id integer not null, foreign key (references users), indexed
comment_id integer not null
  • user_id: User
  • comment_id: Comment
belongs_to :user, :comment

BONUS

Categories

id, category, story_id

Bookmarks

id, user_id, story_id

Clone this wiki locally