Skip to content

Database Schema

Alex Castillo edited this page Jan 10, 2023 · 6 revisions

Database Schema

User

  • id - Integer, primary key
  • username - String, not-nullable, unique
  • email - String, not-nullable, unique
  • first name - String, not-nullable
  • last name - String, not-nullable
  • hashed password - String, not-nullable
    • rel - questions
    • rel - answers
    • rel - upvotes
    • rel - downvotes

Question

  • id
  • question
  • userId - Integer, foreign key -> User[questions]
    • rel - answers

Answer

  • id - Integer, primary key
  • userId - Integer, foreign key -> User[answers]
  • questionId - Integer, foreign key -> Question[answers]
    • rel - upvotes
    • rel - downvotes

Upvote - Many-to-Many

  • userId - Integer, foreign key -> User[upvotes]
  • answerId - Integer, foreign key -> Answer[upvotes]

Downvote - Many-to-Many

  • userId - Integer, foreign key -> User[downvotes]
  • answerId - Integer, foreign key -> Answer[downvotes]

Clone this wiki locally