[STK4-01] 종목 마스터·가격 캐시 DDL

작업 내용 (설계 의도)

변경 사항

종목 리스트 기능의 기반이 되는 DB 스키마를 생성한다. stocks 테이블에 토스 API 제공 필드 전체와 자체 확장 필드를 함께 수용하고, stock_price_cache 테이블에 30초 단위 현재가 캐시를 저장한다. 모든 후행 BE 티켓(STK4-02, STK4-03)이 이 마이그레이션을 전제한다.

다이어그램

ERD

erDiagram
    stocks {
        bigint id PK
        varchar symbol UK "종목코드 (005930)"
        varchar name "종목명 (삼성전자)"
        varchar english_name "영문명"
        varchar market "KOSPI/KOSDAQ/NYSE/NASDAQ"
        varchar currency "KRW/USD"
        varchar sector "업종 (nullable)"
        text description "회사 설명 (nullable)"
        tinyint is_active "상장 여부"
        json metadata "확장 필드"
        datetime created_at
        datetime updated_at
    }
    stock_price_cache {
        bigint id PK
        varchar symbol UK
        varchar last_price "현재가 (문자열, 토스 원본)"
        varchar change_rate "등락률"
        varchar change_amount "등락폭"
        datetime updated_at "마지막 갱신"
    }
    stocks ||--o| stock_price_cache : "symbol 1:1"

테스트 케이스

  • Flyway 마이그레이션이 오류 없이 실행된다
  • stocks 테이블에 symbol UK 제약이 적용된다
  • stock_price_cache 테이블에 symbol UK 제약이 적용된다
  • 롤백: 두 테이블 DROP으로 원복 가능하다 (기존 테이블 무영향)