greatsangho의 이야기

FinPilot - MySQL DB 설계서 본문

프로그래밍/SK AI 캠프

FinPilot - MySQL DB 설계서

greatsangho 2025. 2. 25. 03:06

FinPilot 프로젝트 MySQL DB 설계


회원 테이블(member_tbl)

기능 열이름 자료형 길이 NN PK FK 기타

이메일 user_email VARCHAR 40 T T    
로그인 시간 login_time DATETIME   T      

→ 로그인 시 Update 할 것, 유저 정보 기본적으로 추가, 있을 시 업데이트, 로그인 시간은 서버시간

질문 테이블(qna_tbl)

기능 열이름 자료형 길이 NN PK FK 기타

세션ID session_id VARCHAR(36)   T T   Hash
이메일 user_email VARCHAR 40 T   T  
문서ID docs_id VARCHAR 100 T   T  
유저질문 question VARCHAR 1000 T      
챗봇대답 answer VARCHAR 1000 F      
질문시각 ask_time DATETIME   T      

→ 시간 경과 시 내역 삭제(2주), 모델에서 질문 받아오기, 질문 시각은 서버 시간, 세션ID는 이메일과 문서ID를 합친 hash값 자동 생성

CSV 리스트(csv_tbl)

기능 열이름 자료형 길이 NN PK FK 기타

이메일 user_email VARCHAR 40 T T T  
문서ID docs_id VARCHAR 100 T T T  
csv이름 file_name VARCHAR 100 T      
csv시간 file_time DATETIME   T   T  

→ csv는 마지막에 올린 파일 기준 저장되도록, 파일 삭제 가능, 파일 DB삭제와 모델 삭제 요청 동시에

PDF 리스트(pdf_tbl)

기능 열이름 자료형 길이 NN PK FK 기타

이메일 user_email VARCHAR 40 T T T  
문서ID docs_id VARCHAR 100 T T T  
pdf이름 file_name VARCHAR 100 T      
pdf시간 file_time DATETIME   T   T  

→ PDF는 여러 개 업로드 가능, 파일 삭제 가능, 파일 DB삭제와 모델 삭제 요청 동시에

공통 사항

  • 시간 정보는 서버 시간 기준으로 저장
  • 파일은 업데이트 및 논리적 삭제 수행
  • 프론트에서 유저정보를 넘기도록 함
  • 등록 된 유저만 로그인 기록, 문서 수정 등의 권한을 가지게 됨

해결 과제

  • 필요 시 인증된 사용자만 사용하도록 설정 필요
  • 사용자 정보를 DB로 관리하여 해결 가능할 것으로 판단됨
  • RunPOD과 통신 구현
  • 파일 업로드 시 이름만 가져와 넘기는 기능 구현
  • NN에 변동 있음
  • 사용자 ID와 문서 ID에 대한 정보를 넘겨받아 해당 기능 수행
  • ID 값 말고 추가로 hash 값을 추가해야 할 수 있음
  • 등록 여부를 get으로 구현 가능 할 것으로 보임
  • 이미지 받아서 저장하기
  • pdf, csv 삭제 기능 구현

sqlalchemy를 사용하여 서버 실행 시 DB 생성하도록 설정함

반응형