ERD 다이어그램

Untitled

테이블 DDL


  1. 문제 테이블 (questions):
CREATE TABLE quizzes (
    quiz_id INT PRIMARY KEY AUTO_INCREMENT,
    category_id INT NOT NULL,
    question_text TEXT NOT NULL,
    difficulty VARCHAR(10) NOT NULL,
    reference_url VARCHAR(255),
    attempt_count INT DEFAULT 0,
    correct_count INT DEFAULT 0,
    blank_sentence TEXT,
    FOREIGN KEY (category_id) REFERENCES categories(category_id)
);

  1. 정답 테이블 (answers, alternative_answers):
CREATE TABLE answers (
    answer_id INT PRIMARY KEY AUTO_INCREMENT,
    quiz_id INT,
    answer_text TEXT,
    FOREIGN KEY (quiz_id) REFERENCES quizzes(quiz_id)
);

CREATE TABLE alternative_answers (
    alternative_id INT PRIMARY KEY AUTO_INCREMENT,
    answer_id INT,
    alternative_text TEXT,
    FOREIGN KEY (answer_id) REFERENCES answers(answer_id)
);
  1. 문제 풀이 테이블 (submissions):
CREATE TABLE submissions (
    submission_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    quiz_id INT,
    submission_date DATETIME,
    correct BOOLEAN,
    FOREIGN KEY (user_id) REFERENCES users(user_id),
    FOREIGN KEY (quiz_id) REFERENCES quizzes(quiz_id)
);
  1. 사용자 테이블 (users):
CREATE TABLE users (
    user_id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    password_hashed VARCHAR(255) NOT NULL,
    registration_date DATE NOT NULL
);
CREATE TABLE role (
  id BIGINT NOT NULL AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL UNIQUE,
  description VARCHAR(100),
  PRIMARY KEY (id)
);

CREATE TABLE user_role (
 user_id INT NOT NULL,
 role_id BIGINT NOT NULL,
 PRIMARY KEY (user_id, role_id),
 FOREIGN KEY (user_id) REFERENCES users(user_id),
 FOREIGN KEY (role_id) REFERENCES role(id)
);
  1. 문제 카테고리 테이블 (categories):