📮2. 데이터베이스 스키마 설계

2025. 6. 9. 13:38·프로젝트

📚 [프로젝트] 데이터베이스 스키마 설계



 

테이블 이름 설명 주요 필드
users 서비스에 가입한 사용자 정보를 저장하는 테이블입니다. - 이메일 (로그인 시 사용)
- 비밀번호
- 닉네임
- 이름
- 전화번호
- 마지막 로그인
- 스태프 여부 (is_staff)
- 관리자 여부 (is_admin)
- 계정 활성화 여부 (is_active)
accounts 유저가 보유한 계좌 정보를 저장하는 테이블입니다. - 유저 정보 (FK: users.id)
- 계좌번호 (Unique)
- 은행 코드 (카카오뱅크, KB국민, NH농협, IBK기업 등)
- 계좌 종류 (입출금 통장, 마이너스 통장 등)
- 잔액 (Decimal)
transaction_history 사용자가 보유한 계좌의 거래 내역을 저장하는 테이블입니다. - 계좌 정보 (FK: accounts.id)
- 거래 금액
- 거래 후 잔액
- 거래 내역 (예: 오픈뱅킹 출금, ATM 입금, 카드 결제 등)
- 입출금 타입 (입금, 출금)
- 거래 타입 (현금, 계좌 이체, 자동 이체, 카드 결제 등)
- 거래 일시 (timestamp)
analysis (도전 미션) 사용자의 수입과 지출을 분석하고 관리하는 테이블입니다. - 분석 요청 사용자 (FK: users.id)
- 분석 대상 (수입, 지출)
- 분석 기간 (일간, 주간, 월간, 연간)
- 시작 날짜
- 종료 날짜
- 설명
- 결과 이미지 파일
- 생성/업데이트 날짜
notifications (도전 미션) 사용자 알림을 관리하는 테이블입니다. - 알림 수신 사용자 (FK: users.id)
- 메시지 내용
- 읽음 여부 (is_read, Boolean)
- 생성 날짜 (timestamp)
 

🔗 테이블 간 관계 설명

관계설명
users 1:N accounts 한 명의 사용자는 여러 개의 계좌를 가질 수 있습니다. (1:N)
accounts 1:N transaction_history 하나의 계좌는 여러 거래 내역을 가질 수 있습니다. (1:N)
users 1:N analysis 한 명의 사용자는 여러 분석 요청을 할 수 있습니다. (1:N)
users 1:N notifications 한 명의 사용자는 여러 알림을 받을 수 있습니다. (1:N)
 

📝 필수 제약 조건 (Constraints)

  • users.email: Unique (로그인 시 이메일 사용)
  • accounts.account_number: Unique (계좌번호 중복 방지)
  • transaction_history.transaction_timestamp: 거래 일시 자동 저장 (auto_now_add)
  • notifications.is_read: 기본값 False (읽지 않음 상태)

🛠️ DB 설계 기본 규칙

  • 모든 테이블은 id (AutoField, PK) 기본 제공
  • 외래키(FK)는 CASCADE 삭제 전략
  • 시간 정보(created_at, updated_at)는 필요한 테이블에 삽입
  • Decimal 필드는 소수점 2자리 고정 (예: 잔액, 거래 금액)

✅ 요약

  • 5개 테이블
  • 명확한 1:N 관계
  • 도전 미션 포함 설계
  • 추후 Django ORM 모델 설계와 바로 연결 가능

'프로젝트' 카테고리의 다른 글

📮 3. Django ORM을 활용하여 Model 생성하기  (1) 2025.06.09
📮 3. ERD를 구성 Mermid 활용  (0) 2025.06.09
📮 1. ERD(Entity Relationship Diagram) 작성하기  (0) 2025.06.09
📌 🚀 [GitHub Actions CI - 3단계: 로컬 환경 자동화 검사 스크립트 만들기 & Docker와 DB 호스트 이슈 해결법]  (0) 2025.06.06
🚀 [GitHub Actions CI - 2단계: 워크플로우 최종 완성 및 실전 팁]  (1) 2025.06.06
'프로젝트' 카테고리의 다른 글
  • 📮 3. Django ORM을 활용하여 Model 생성하기
  • 📮 3. ERD를 구성 Mermid 활용
  • 📮 1. ERD(Entity Relationship Diagram) 작성하기
  • 📌 🚀 [GitHub Actions CI - 3단계: 로컬 환경 자동화 검사 스크립트 만들기 & Docker와 DB 호스트 이슈 해결법]
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (787)
      • Python (32)
      • 프로젝트 (110)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    chinanightlife
    youngprofessionals
    RM
    global politics
    life reflection
    btscomeback
    college reunions
    btsreunion
    뷔
    chatgpterror
    travel ban
    lawsuitculture
    bts
    btsdischarge
    titaniumcase
    remittance
    homebartrend
    gpterror
    urbantrends
    americaparty
    self-growth
    trumpmuskclash
    smartphonedurability
    basalcellcarcinoma
    newpoliticalparty
    americanlaw
    classaction
    livebroadcast
    btsjungkook
    hotcoffeecase
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
📮2. 데이터베이스 스키마 설계
상단으로

티스토리툴바