๐ User (์ ์ )
์์ฑ |
์ ์ฝ์กฐ๊ฑด |
์ค๋ช
|
user_id |
PK |
๋ด๋ถ์ ์ผ๋ก ์๋์์ฑ๋๋ ๊ณ ์ ๋ฒํธ |
nickname |
NOT NULL |
๋๋ค์ ์ค๋ณต ํ์ฉ(UNIQUE ์์), 1-5์ ์
๋ ฅ ๊ถ์ฅ |
โ๏ธโ๐ฅ ๊ด๊ณ
- User 1 : N QuizSession
- ์ฌ์ฉ์๋ ์ฌ๋ฌ ์ธ์
์ ๊ฐ์ง ์ ์์
CREATE TABLE `User` (
user_id BIGINT NOT NULL AUTO_INCREMENT,
nickname VARCHAR(5) NOT NULL,
PRIMARY KEY (user_id),
-- ๋๋ค์ ๊ธธ์ด/ํธ๋ฆผ ๊ฒ์ฆ
CONSTRAINT CK_User_nickname_len CHECK (CHAR_LENGTH(TRIM(nickname)) BETWEEN 1 AND 5),
CONSTRAINT CK_User_nickname_trim CHECK (nickname = TRIM(nickname))
) ENGINE=InnoDB CHARSET=utf8mb4;
- ๋๋ค์ ๊ธธ์ด/ํธ๋ฆผ DB 2์ฐจ ๊ฒ์ฆ
๐ Quiz (ํด์ฆ)
์์ฑ |
์ ์ฝ์กฐ๊ฑด |
์ค๋ช
|
quiz_id |
PK |
ํด์ฆ ๊ณ ์ ๋ฒํธ |
quiz_text |
NOT NULL |
ํด์ฆ ๋ณธ๋ฌธ ๋ด์ฉ |
image_url |
DEFAULT NULL |
ํด์ฆ ์ด๋ฏธ์ง URL |
โ๏ธโ๐ฅ ๊ด๊ณ
- Quiz 1 : 1 Hint
- ํด์ฆ ํ๋์ ํํธ๋ ํ๋
- Quiz 1 : N QuizOption
- ๊ฐ ํด์ฆ๋ ๋ณด๊ธฐ๊ฐ 4๊ฐ(1 ~ 4๋ฒ)
- Quiz 1 : N SessionAnswer
- ๋์ผ ํด์ฆ๊ฐ์ฌ๋ฌ ์ธ์
์์ ํ๋ฆด ์ ์์
CREATE TABLE `Quiz` (
quiz_id BIGINT NOT NULL AUTO_INCREMENT,
quiz_text VARCHAR(500) NOT NULL,
image_url VARCHAR(1000) DEFAULT NULL,
PRIMARY KEY (quiz_id)
) ENGINE=InnoDB CHARSET=utf8mb4;
๐ Hint (ํํธ)
์์ฑ |
์ ์ฝ์กฐ๊ฑด |
์ค๋ช
|
hint_id |
PK |
ํํธ ๊ณ ์ ID |
quiz_id |
FK, NOT NULL, UNIQUE |
์ฐ๊ฒฐ๋ ํด์ฆ ID |
hint_text |
NOT NULL |
ํํธ ๋ด์ฉ |
example_text |
NOT NULL |
์ ๋ต ๋จ์ด๋ฅผ ๋น์นธ ์ฒ๋ฆฌํ ์๋ฌธ(์ ๋ต ๋
ธ์ถ ์์ด ๋งฅ๋ฝ๋ง ์ ๊ณต) |
โ๏ธโ๐ฅ ๊ด๊ณ
- Quiz 1 : 1 Hint
- ํด์ฆ ์ญ์ ์ ํํธ๋ ํจ๊ป ์ญ์ ๋จ(CASCADE)
CREATE TABLE `Hint` (
hint_id BIGINT NOT NULL AUTO_INCREMENT,
quiz_id BIGINT NOT NULL,
hint_text VARCHAR(500) NOT NULL,
example_text VARCHAR(500) NOT NULL,
PRIMARY KEY (hint_id),
UNIQUE KEY UQ_Hint_quiz (quiz_id),
FOREIGN KEY (quiz_id) REFERENCES Quiz(quiz_id) ON DELETE CASCADE
) ENGINE=InnoDB CHARSET=utf8mb4;
๐ QuizOption (๋ณด๊ธฐ : 4์ง์ ๋ค)
์์ฑ |
์ ์ฝ์กฐ๊ฑด |
์ค๋ช
|
option_id |
PK |
๋ณด๊ธฐ ID |
quiz_id |
FK, NOT NULL |
์ด๋ค ํด์ฆ์ ๋ณด๊ธฐ์ธ์ง |
option_text |
NOT NULL |
๋ณด๊ธฐ ํ
์คํธ |
option_meaning |
NOT NULL |
๋ณด๊ธฐ ๋ป |
example_text |
NULL |
์ ๋ต ๋ณด๊ธฐ์๋ง ์ ๊ณต๋๋ ์๋ฌธ(์ค๋ต์ด๋ฉด null) |
answer_number |
NOT NULL |
๋ณด๊ธฐ ์์ : 1 ~ 4 |
is_answer |
NOT NULL DEFAULT 0 |
์ด ๋ณด๊ธฐ๊ฐ ์ ๋ต์ธ์ง ์ฌ๋ถ (0 : ์ค๋ต, 1 : ์ ๋ต) |