Skip to content

Database Schema

cch41 edited this page Apr 28, 2021 · 10 revisions

Database Schema

users

column name data type details
id integer not null, primary key
username string not null, unique
email string not null, indexed, unique
hashedPassword string not null, unique
created_at datetime not null
updated-at datetime not null
  • index on email, unique: true

questions

column name data type details
id integer not null, primary key
content string not null
questiontagId integer not null, foreign key
userId integer not null, foreign key
created_at datetime not null
updated-at datetime not null
  • userId references users table
  • questiontagId references questiontags table

answers

column name data type details
id integer not null, primary key
content string not null
userId integer not null, foreign key
questionId integer not null, foreign key
created_at datetime not null
updated-at datetime not null
  • userId references users table
  • questionId references questions table

likes

column name data type details
id integer not null, primary key
userId integer not null, indexed, foreign key
questionId integer indexed, foreign key
answerId integer indexed, foreign key
  • userId references users table
  • questionId references questions table
  • answerId references answers table
  • Unique index on [userId, questionId]
  • Unique index on [userId, answerId]

tags

column name data type details
id integer not null, primary key
name text not null

questiontags

column name data type details
id integer not null, primary key
questionId integer not null, foreign key
tagId integer not null, foreign key
  • questionId references questions table
  • tagId references tags table

Clone this wiki locally