๐Ÿ“˜ User (์œ ์ €)

์†์„ฑ ์ œ์•ฝ์กฐ๊ฑด ์„ค๋ช…
user_id PK ๋‚ด๋ถ€์ ์œผ๋กœ ์ž๋™์ƒ์„ฑ๋˜๋Š” ๊ณ ์œ ๋ฒˆํ˜ธ
nickname NOT NULL ๋‹‰๋„ค์ž„ ์ค‘๋ณต ํ—ˆ์šฉ(UNIQUE ์—†์Œ), 1-5์ž ์ž…๋ ฅ ๊ถŒ์žฅ

โ›“๏ธโ€๐Ÿ’ฅ ๊ด€๊ณ„

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;

๐Ÿ“˜ Quiz (ํ€ด์ฆˆ)

์†์„ฑ ์ œ์•ฝ์กฐ๊ฑด ์„ค๋ช…
quiz_id PK ํ€ด์ฆˆ ๊ณ ์œ  ๋ฒˆํ˜ธ
quiz_text NOT NULL ํ€ด์ฆˆ ๋ณธ๋ฌธ ๋‚ด์šฉ
image_url DEFAULT NULL ํ€ด์ฆˆ ์ด๋ฏธ์ง€ URL

โ›“๏ธโ€๐Ÿ’ฅ ๊ด€๊ณ„

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 ์ •๋‹ต ๋‹จ์–ด๋ฅผ ๋นˆ์นธ ์ฒ˜๋ฆฌํ•œ ์˜ˆ๋ฌธ(์ •๋‹ต ๋…ธ์ถœ ์—†์ด ๋งฅ๋ฝ๋งŒ ์ œ๊ณต)

โ›“๏ธโ€๐Ÿ’ฅ ๊ด€๊ณ„

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 : ์ •๋‹ต)