19 lines
987 B
SQL
19 lines
987 B
SQL
-- 세션 테이블 (Spring Session JDBC와 유사한 구조)
|
|
CREATE TABLE IF NOT EXISTS wr_session (
|
|
session_id VARCHAR(64) PRIMARY KEY, -- 세션 토큰 (랜덤 생성)
|
|
employee_id INTEGER NOT NULL REFERENCES wr_employee_info(employee_id),
|
|
login_history_id INTEGER REFERENCES wr_login_history(history_id),
|
|
created_at TIMESTAMP DEFAULT NOW(), -- 세션 생성 시간
|
|
last_access_at TIMESTAMP DEFAULT NOW(), -- 마지막 접근 시간
|
|
expires_at TIMESTAMP NOT NULL, -- 만료 시간
|
|
login_ip VARCHAR(45), -- 로그인 IP
|
|
user_agent TEXT -- 브라우저 정보
|
|
);
|
|
|
|
-- 인덱스
|
|
CREATE INDEX IF NOT EXISTS idx_wr_session_employee_id ON wr_session(employee_id);
|
|
CREATE INDEX IF NOT EXISTS idx_wr_session_expires_at ON wr_session(expires_at);
|
|
|
|
-- 만료된 세션 자동 정리 (선택사항 - 배치로 실행)
|
|
-- DELETE FROM wr_session WHERE expires_at < NOW();
|