schema - achynaliev/AppStarter GitHub Wiki

users

col_name data_type details
id integer not null, primary-key
username string not null ,unique, indexed
email string not null, unique, indexed
password_digest string not null
image_url string
session_token string not null, unique
created_at datetime not null
updated_at datetime not null
  • index on username, unique: true
  • index on email, unique: true

projects

col_name data_type details
id integer not null, primary_key
title string not null
short_description string not null
full_description text not null
funding_goal integer not null
funding_end_date datetime not null
image_url string
video_url string
user_id integer not null, foreign_key, indexed
created_at datetime not null
updated_at datetime not null
  • user_id references users
  • index on user_id

backings

col_name data_type details
id integer not null, primary_key
user_id integer not null, foreign_key, indexed
reward_id integer not null, foreign_key, indexed
project_id integer not null, foreign_key, indexed
  • project_id references projects
  • user_id references users
  • reward_id references rewards

rewards

col_name data_type details
id integer not null, primary_key
pledge_amount integer not null
description string not null
title string not null

categories

col_name data_type details
id integer not null, primary_key
name string not null, unique

project_categories

col_name data_type details
id integer not null, primary_key
project_id integer not null, foreign_key, indexed
category_id integer not null, foreign_key, indexed
  • project_id references projects
  • category_id references categories
  • index on the combination of project_id and category_id

User associations

has_many projects

has_many backings

has_many rewards through backings

has_many recommendation

Project associations

belongs_to user

has_many backings

has_many rewards

has_many backers through backings

has_many categories through project_categories

Backings associations

belongs_to user

belongs_to rewards

has_one project through rewards

Categories associations

has_many projects through project_categories

project_categories

belongs_to project

belongs_to category

Rewards associations

belongs_to project

bonus

readings

col_name data_type details
id integer not null, primary_key
image_url string not null
link_url string not null
category string not null

recommendations

col_name data_type details
id integer not null, primary_key
user_id integer not null, foreign_key
category_id integer not null, foreign_key
  • user_id references users
  • category_id references categories