전제
시트 구성
CREATE TABLE user (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
employee_no VARCHAR(50) NOT NULL,
email VARCHAR(100),
password VARCHAR(255),
name VARCHAR(100) NOT NULL,
department_name VARCHAR(100),
role VARCHAR(20) NOT NULL,
is_active BOOLEAN NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_user_employee_no (employee_no),
UNIQUE KEY uk_user_email (email),
KEY idx_user_role (role),
KEY idx_user_is_active (is_active)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE user_budget_monthly (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
user_id BIGINT NOT NULL,
year_month CHAR(7) NOT NULL,
monthly_limit INT NOT NULL,
note VARCHAR(255),
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_user_budget_month (user_id, year_month),
CONSTRAINT fk_budget_user
FOREIGN KEY (user_id) REFERENCES user(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;