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?