Files
Aislo/docs/wiki/concepts/db_schema/users_auth.md
T
2026-07-15 18:33:33 +09:00

4.2 KiB

type, status, related_pages, last_updated, source
type status related_pages last_updated source
concept stable
B01_Dashboard/B01_backend
2026-07-12 raw/guidelines/db_schema.md

DB: 사용자/인증/조직 테이블

overview

users (사용자)

컬럼 타입 Null Key Default / Extra
id int(11) NO PRI auto_increment
email varchar(255) NO UNI
password_hash varchar(255) NO
name varchar(255) NO
position / department varchar(100) YES 직위 / 부서
phone varchar(20) YES
company_id int(11) YES MUL FK→companies.id
role enum('SYSTEM_ADMIN','ADMIN','USER') NO MUL USER
is_master tinyint(1) NO 0 (마스터 여부)
status enum('PENDING_EMAIL','NO_COMPANY','PENDING','ACTIVE','INACTIVE','REJECTED') NO MUL PENDING_EMAIL
auth_expires_at / last_login datetime YES 인증만료 / 최종로그인
login_failures int(11) NO 0 (실패 횟수)
created_at / updated_at / deleted_at timestamp - 생성 / 수정 / soft-delete

사용처: B01_Dashboard/B01_backend (사용자 관리), 전 페이지 공통 인증

companies (회사)

컬럼 타입 Null Key Default / Extra
id int(11) NO PRI auto_increment
name varchar(255) NO UNI 회사명
business_registration_number varchar(20) YES UNI 사업자번호
status enum('ACTIVE','INACTIVE','SUSPENDED') NO ACTIVE
subscription_status enum('FREE','TRIAL','PAID','EXPIRED') NO FREE
created_by int(11) YES MUL FK→users.id (생성자)
company_code varchar(20) YES 참여용 코드

사용처: B01_Dashboard/B01_backend

sessions (세션)

컬럼 타입 Null Key Default / Extra
id varchar(255) NO PRI 세션 ID (쿠키 값)
user_id int(11) NO MUL FK→users.id
user_agent_hash char(64) NO
expires_at timestamp NO MUL 만료일시
last_activity_at timestamp NO 최종 활동일시

사용처: 전 페이지 공통 (세션 인증) — 상세 → auth_rbac

email_otps (이메일 OTP)

컬럼 타입 Null Key Default / Extra
id bigint(20) NO PRI auto_increment
user_id int(11) NO MUL FK→users.id
purpose enum('REGISTER','LOGIN','REVERIFY','PASSWORD_CHANGE') NO 용도
otp_hash varchar(255) NO OTP 해시값
expires_at / consumed_at timestamp - 만료일시 / 사용일시

trusted_devices (신뢰 기기)

컬럼 타입 Null Key Default / Extra
id bigint(20) NO PRI auto_increment
user_id int(11) NO MUL FK→users.id
user_agent_hash char(64) NO 브라우저 지문 해시
verified_at / last_used_at timestamp NO 검증 / 최종 사용 일시

join_requests (회사 가입 신청)

컬럼 타입 Null Key Default / Extra
id int(11) NO PRI auto_increment
user_id / company_id int(11) NO MUL FK→users/companies
status enum('PENDING','APPROVED','REJECTED') NO PENDING
requested_at / reviewed_at timestamp - 신청 / 검토 일시
reviewed_by int(11) YES MUL FK→users.id (검토자)

사용처: B01_Dashboard/B01_backend (B01_Dashboard_Repository.py:378 가입 신청·처리)

user_consents (약관 동의)

컬럼 타입 Null Key Default / Extra
id bigint(20) NO PRI auto_increment
user_id int(11) NO MUL FK→users.id
terms_version varchar(20) NO 동의한 약관 버전
terms_agreed / privacy_agreed tinyint(1) NO 필수 동의여부 (1=동의)
marketing_agreed tinyint(1) NO 0 (선택 마케팅동의)
agreed_at timestamp NO 동의 일시