• 티스토리 홈
  • 프로필사진
    Song hyun
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
Song hyun
  • 프로필사진
    Song hyun
    • 분류 전체보기 (780)
      • 백준 (0)
      • 영어 (2)
        • Diary (0)
        • Toast Masters (2)
      • 메모 (13)
      • 설치 메뉴얼 (30)
      • Java (178)
      • MySQL (60)
      • JSP (67)
      • Springboot (46)
      • HTML,CSS, JS (71)
        • HTML (8)
        • CSS (12)
        • JavaScript (37)
        • HTML&CSS 스터디 (13)
      • C++ (7)
      • Linux (7)
      • JPA (34)
      • Kotlin (2)
      • Flutter (42)
      • Error Note (39)
      • 디자인 패턴 (12)
      • 디지털논리회로 (4)
      • 데이터베이스 시스템 (8)
      • 알고리즘 (7)
      • 운영체제 (3)
      • 이산수학 (3)
      • 인공지능 (1)
      • 자료 구조 (14)
        • 기본 개념 (14)
        • 자료구조 스터디 (0)
      • 💡My project (76)
        • 팩맨 : Java Swing 게임 제작 프로젝트 (6)
        • 네이트톡 : Java 소켓 통신 프로젝트 (4)
        • 포켓옥션 : HikariCP&JDBC CRUD 프.. (3)
        • 이지 부산 : BDIA-Devton 2024 프로.. (20)
        • 그린 유니버시티 : JSP를 사용한 학사관리 프로.. (1)
        • 애드 포커 : 웹 소켓과 Spring을 사용한 카.. (1)
        • 셸위 : 게임 친구 매칭 사이트 (21)
        • 다모아 : 개발자 중개 플랫폼 (20)
      • 📗스터디 (13)
        • CNN : 웹개발 스터디 (10)
        • Node&React로 유튜브 사이트 만들기 (3)
      • 📙독서 및 강연 기록 (36)
        • 강연 (14)
        • 독서 (22)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [MySQL] 37. 쇼핑몰 서비스의 DB 구축
        2024년 06월 11일
        • Song hyun
        • 작성자
        • 2024.06.11.:14
        728x90
        반응형

        [MySQL] 37. 쇼핑몰 서비스의 DB 구축

        1. DB 구축에 필요한 준비물

        2. 테이블 설계하기


        1. DB 구축에 필요한 준비물

        (1) 회원가입에 대한 테이블 설계

        (2) 상품에 대한 정보를 저장하는 테이블 설계

        (3) 주문 테이블 / 주문 상세 테이블 설계 (정규화)

         


        2. 테이블 설계하기

         

        *(1) 회원가입에 대한 테이블 설계  : User table

        User table 설계 도면 Data Type (자료형) Constraints (제약) 상세 설명
        id INT (1) PK(Primary key)
        (2) auto_increment
        사용자 고유 ID
        username VARCHAR(50) (1) not null 사용자 이름
        email VARCHAR(100) (1) not null
        (2) unique
        email 주소
        password VARCHAR(255) *(1) 암호화 처리 필요
        (2) not null
        비밀번호
        address VARCHAR(255) - 주소
        created_at TIMESTAMP Default Current_timestamp 계정 생성 시간

         

         

        *(2) 상품에 대한 정보를 저장하는 테이블 설계  : Product table

        Product table 설계 도면 Data Type (자료형) Constraints (제약) 상세 설명
        id INT (1) PK
        (2) Auto_increment
        식별자
        name VARCHAR(100) (1) not null 상품명
        description TEXT - 상품 설명
        price DECIMAL(10,2) (1) not null 가격
        stock INT Default 0 재고 수량
        created_at TIMESTAMP Default Current_timestamp 상품 등록 시간

         

         

        *(3) 주문 테이블 / 주문 상세 테이블 설계 (정규화)

        Order table Data Type (자료형) Constraints (제약) 상세 설명
        id INT (1) not null
        (2) primary key
        (3) auto_increment
        식별자,
        주문 고유 ID
        user_id INT (1) FK from user(id)
        (2) not null
        주문한 사람
        total_price DECIMAL(10,2) not null 총 주문 금액
        created_at TIMESTAMP Default Current_timestamp 주문 시간

         

        Order_details table Data Type (자료형) Constraints (제약) 상세 설명
        id INT (1) auto_increment
        (2) primary key
        주문 상세 고유 ID
        order_id INT (1) not null
        (2) foreign key
        주문 ID
        product_id INT (1) not null
        (2) foreign key
        주문한 상품 ID
        count INT (1) not null 주문 수량
        price DECIMAL(10,2) (1) not null 상품의 주문 가격

         

         

        *주문 테이블과 주문 상세 테이블을 분리해서 설계한 이유는?

        -> 데이터베이스 정규화 원칙에 기반

         

        *정규화는 데이터베이스 설계에서 중요한 과정으로, 데이터 중복을 최소화하고, 데이터 무결성을 향상시키며, 수정, 삽입, 삭제 등 데이터베이트 작접 시 발생하는 문제들을 방지할 때 사용한다.

         

         

        ** 주문과 주문 상세 테이블 분리의 목적

        =>> 중복 제거: 주문 정보와 주문 상세 정보를 하나의 테이블로 관리할 경우, 주문 정보가 각 주문 상품마다 반복적으로 저장된다. (<->데이터베이스 정규화 원칙)

        728x90
        반응형

        'MySQL' 카테고리의 다른 글

        [MySQL] 39. JDBC 설치 및 설정  (0) 2024.06.11
        [MySQL] 38. 블로그 서비스의 DB 구축  (1) 2024.06.11
        [MySQL] 36. Self Join  (0) 2024.06.11
        [MySQL] 35. 정규화(1)  (0) 2024.06.11
        [MySQL] 34. JDBC 구성 요소 : 아키텍처  (0) 2024.06.11
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바