talk / backend /sql /005_user_voices_register.sql
user
Deploy StyleVoiceChat backend
aa9892b
Raw History Blame Contribute Delete
1.78 kB
-- B-1: user_voices.register 컬럼 μΆ”κ°€ (2026-04-27)
--
-- ν•œ μ‚¬μš©μžκ°€ 같은 ν™”μž(display_name)둜 두 개의 register λ₯Ό 등둝할 수 있게 ν•œλ‹€.
-- - casual: 자유 λͺ¨λ“œ λŒ€ν™”μš© (친근/일상 톀)
-- - formal: Voice Moments μ½˜ν…μΈ  λ‚­λ…μš© (μ°¨λΆ„/낭독 톀)
--
-- λ°°κ²½: ICL TTS λŠ” reference audio 의 prosody λΆ„ν¬μ—μ„œ λ©€μ–΄μ§„ ν…μŠ€νŠΈλ₯Ό
-- λ§Œλ‚˜λ©΄ μŒμƒ‰μ„ ν¬μƒν•˜κ³  prior 둜 λ―Έλ„λŸ¬μ§„λ‹€ (μ‚¬μš©μž 보고: "κ³ μš”ν•˜κ³  μ•„λŠ‘ν•œ 밀이
-- 당신을 감싸쀄 κ±°μ˜ˆμš”" β†’ reference latent λ°– β†’ λ‹€λ₯Έ λͺ©μ†Œλ¦¬). LLM ν”„λ‘¬ν”„νŠΈλ§ŒμœΌλ‘œλŠ”
-- μ–΄νœ˜ λΆ„ν¬κΉŒμ§€ 작기 μ–΄λ €μ›Œ, 같은 ν™”μžμ— λŒ€ν•΄ register 별 reference λ₯Ό 뢄리.
--
-- λΌμš°νŒ…:
-- - 자유 λͺ¨λ“œ 호좜 β†’ register='casual' voice μš°μ„ 
-- - Voice Moment μ½˜ν…μΈ  호좜 β†’ register='formal' μš°μ„ , μ—†μœΌλ©΄ casual fallback
ALTER TABLE public.user_voices
ADD COLUMN IF NOT EXISTS register VARCHAR(16) NOT NULL DEFAULT 'casual'
CHECK (register IN ('casual', 'formal'));
-- κΈ°μ‘΄ row λŠ” λͺ¨λ‘ DEFAULT 'casual' 둜 λΆ„λ₯˜ (νšŒκ·€ 0).
-- μ‚¬μš©μžκ°€ μŒμ„± μ„€μ •μ—μ„œ "μ°¨λΆ„ν•œ 톀 μΆ”κ°€ 등둝" 으둜 formal row λ₯Ό μΆ”κ°€ κ°€λŠ₯.
-- (user_id, display_name, register) μœ λ‹ˆν¬ 인덱슀 β€”
-- 같은 ν™”μžμ˜ 같은 register 쀑볡 등둝 λ°©μ§€.
-- display_name 이 λΉ„μ–΄μžˆλŠ” μ˜› row λŠ” μ œμ•½ λŒ€μƒ μ™Έ (partial index).
CREATE UNIQUE INDEX IF NOT EXISTS user_voices_user_display_register_uniq
ON public.user_voices (user_id, display_name, register)
WHERE display_name IS NOT NULL AND display_name != '';
COMMENT ON COLUMN public.user_voices.register IS
'Voice register: casual (자유 λͺ¨λ“œ λŒ€ν™”μš©) | formal (Voice Moments μ½˜ν…μΈ μš©). 같은 display_name 으둜 두 register 등둝 κ°€λŠ₯.';