ENUM
ENUM์ ํ
์ด๋ธ ์์ฑ ์ ๋ฏธ๋ฆฌ ์ ์ํ ๋ฌธ์์ด ๋ชฉ๋ก ์ค์์ ํ๋์ ๊ฐ๋ง ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ ํ์
์ด๋ค.
์ํ ์ฝ๋์ฒ๋ผ ์ ํด์ง ๋ช ๊ฐ์ ๊ฐ๋ง ๊ฐ์ ธ์ผ ํ๋ ์ปฌ๋ผ์ ์ฌ์ฉ๋์ด ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ๋ณด์ฅ
๋ด๋ถ์ ์ผ๋ก
ENUM์ ๋ฌธ์์ด ๊ฐ์ ์ ์ ์ธ๋ฑ์ค๋ฅผ ๋งคํํ์ฌ ์ ์ฅ(์ ์๋ ๋ชฉ๋ก์ ์ฒซ ๋ฒ์งธ ๊ฐ 1, ๋ ๋ฒ์งธ ๊ฐ 2, ...)255๊ฐ ๋ฏธ๋ง์ ๊ฐ์ 1๋ฐ์ดํธ, 255๊ฐ ์ด์์ 2๋ฐ์ดํธ ์ฌ์ฉ
CREATE TABLE tb_enum
(
id INT AUTO_INCREMENT PRIMARY KEY,
status ENUM ('PENDING', 'PROCESSING', 'SUCCESS', 'FAILURE')
);
INSERT INTO tb_enum (status)
VALUES ('PROCESSING');
-- 'PROCESSING'์ ๋ ๋ฒ์งธ ๊ฐ์ด๋ฏ๋ก ์ธ๋ฑ์ค 2์ ํด๋น
-- ์๋ ๋ ์ฟผ๋ฆฌ๋ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
SELECT *
FROM tb_enum
WHERE status = 'PROCESSING';
SELECT *
FROM tb_enum
WHERE status = 2;ENUM ํ์ ์ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฅ/๋จ์ ์ด ์กด์ฌํ๋ค.
์ฅ์
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ: ์ ์๋ ๊ฐ๋ง ์ ์ฅํ ์ ์์ด ์๋ชป๋ ๋ฐ์ดํฐ ์ ๋ ฅ ๋ฐฉ์ง
์ ์ฅ ๊ณต๊ฐ ํจ์จ: ๊ธด ๋ฌธ์์ด ๋์ 1~2๋ฐ์ดํธ์ ์ ์๋ก ์ ์ฅ
๊ฐ๋ ์ฑ: ์ฟผ๋ฆฌ์์ ์๋ฏธ๊ฐ ๋ช ํํ ๋ฌธ์์ด ์ฌ์ฉ ๊ฐ๋ฅ
๋จ์
์ ์ฐ์ฑ ๋ถ์กฑ: ์๋ก์ด ๊ฐ์ ์ถ๊ฐ/๋ณ๊ฒฝํ๋ ค๋ฉด ํ ์ด๋ธ ๊ตฌ์กฐ ๋ณ๊ฒฝ ํ์
์คํค๋ง ๋ณ๊ฒฝ ๋น์ฉ: ์ค๊ฐ์ ๊ฐ์ ์ฝ์ /๋ณ๊ฒฝ ์ ํ ์ด๋ธ ๋ฆฌ๋น๋ ํ์
๋ง์ง๋ง์ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ: ํ ์ด๋ธ ๊ตฌ์กฐ(๋ฉํ๋ฐ์ดํฐ) ๋ณ๊ฒฝ๋ง์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ
์ค๊ฐ์ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ: ํ ์ด๋ธ ์ ์ฒด ๋ณต์ฌ ๋ฐ ์ฝ๊ธฐ ์ ๊ธ ํ์
์ ๋ ฌ ๋ฌธ์ : ๊ธฐ๋ณธ ์ ๋ ฌ์ด ๋ด๋ถ ์ ์ ์ธ๋ฑ์ค ๊ธฐ์ค์ผ๋ก ์ด๋ฃจ์ด์ ธ, ์๋์ ๋ค๋ฅธ ๊ฒฐ๊ณผ ๋ฐ์ ๊ฐ๋ฅ(๋ฌธ์์ด ์ ๋ ฌ์
CAST(fd_enum AS CHAR)์ฌ์ฉ)
์ ๊ทํ(Lookup Table)
ENUM์ ๋จ์ ๋๋ฌธ์, ์ค๋ฌด์์๋ ์ ๊ทํ๋ฅผ ํตํ ์กฐํ ํ
์ด๋ธ(Lookup Table) ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์๋ค.
status์ปฌ๋ผ์ENUM์ผ๋ก ์ ์ํ๋ ๋์statusํ ์ด๋ธ์ ๋ง๋ค๊ณ ์ธ๋ ํค(Foreign Key)๋ก ์ฐธ์กฐ์๋ก์ด ์ํ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝํ ๋ ํ ์ด๋ธ ์คํค๋ง๋ฅผ ์์ ํ ํ์๊ฐ ์๊ณ , ๋จ์ํ ํ์ ์ถ๊ฐ/์์ ํ๋ ๋ฐฉ์์ผ๋ก ๋์ ๊ฐ๋ฅ
์ฐธ๊ณ ์๋ฃ
Last updated
Was this helpful?