📮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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바