Skip to content

[ Feature ] - DIAGNOSIS_RESULT 테이블 생성 #95

Description

@bigwaveBigwave

기능 설명

diagnosis-service가 월별 재무 진단 스냅샷을 저장할 수 있도록 DIAGNOSIS_RESULT 테이블을 생성한다.

이 테이블은 AI 리포트 본문을 저장하는 용도가 아니라, 사용자별 월별 재무 숫자 요약을 저장하는 용도이다.

테이블 정의

CREATE TABLE IF NOT EXISTS DIAGNOSIS_RESULT
(
    diagnosis_id           BIGINT AUTO_INCREMENT PRIMARY KEY,
    user_id                BIGINT       NOT NULL COMMENT 'user-service 회원 ID 논리 참조',
    year_month             CHAR(7)      NOT NULL COMMENT '기준연월, YYYY-MM',
    total_income           BIGINT       NOT NULL COMMENT '잡 매칭이 완료된 월 총소득',
    unmatched_income       BIGINT       NOT NULL COMMENT '잡 미매칭 입금 거래 합계',
    total_expense          BIGINT       NOT NULL COMMENT '소비로 분류된 월 총소비',
    net_cash_flow          BIGINT       NOT NULL COMMENT '총소득에서 총소비를 차감한 순현금흐름',
    fixed_expense          BIGINT       NOT NULL COMMENT '고정지출 합계',
    fixed_expense_ratio    DECIMAL(9,4) NULL COMMENT '총소득 대비 고정지출 비율, 0~1',
    total_financial_assets BIGINT       NOT NULL COMMENT '전체 금융자산 합계',
    liquid_assets          BIGINT       NOT NULL COMMENT '즉시 사용할 수 있는 유동자산',
    safe_assets            BIGINT       NOT NULL COMMENT '방어기간에 사용할 수 있는 안전자산',
    calculated_at          DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '최근 배치 계산 완료 시각',
    created_at             DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at             DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    UNIQUE KEY uk_diagnosis_result_user_month (user_id, year_month)
) ENGINE=InnoDB
  DEFAULT CHARSET=utf8mb4;


## 작업 사항
- DIAGNOSIS_RESULT 테이블 생성
- (user_id, year_month) 유니크 제약조건 추가
- 월별 재무 진단 스냅샷 저장용 컬럼 구성
- 생성일시/수정일시 자동 관리


## 참고 사항
- 이 테이블은 diagnosis-service가 소유한다.
- AI 리포트 본문은 저장하지 않는다.
- user_id와 year_month 조합이 중복 저장되지 않도록 월별 스냅샷 단건 유지를 위해 유니크 제약 조건을 적용한다.


## 체크리스트

- [ ] DIAGNOSIS_RESULT 테이블 생성

- [ ] (user_id, year_month) 유니크 제약조건 적용

- [ ] RDS에 반영 확인

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions