Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 마이페이지
- mypage
- ui탬플릿
- react
- register
- 밸류즈 홈페이지
- RCPS
- Token
- 회원가입로직
- 로그인 로직
- 관리자페이지
- 밸류즈
- 로그인
- 빌드 및 배포
- stock option
- 인증처리
- Ajax
- userManagement
- 파생상품평가
- MRC
- Styled Components
- 이미지 업로드
- 배포
- 스프링시큐리티
- 달력 라이브러리
- 공통메서드
- Typesciprt
- 캘린더 라이브러리
- Update
- jsonwebtoken
Archives
- Today
- Total
I T H
[프로젝트] 6. Database 설정 및 테이블 설계 - 모델링 (Week 2) 본문
데이터베이스의 경우 이미 설치되어 있는 MariaDB(Mysql)를 사용.
(개인 스터디용 서버를 사용중임으로 별도의 데이터베이스 설치는 생략)
DB 접속 툴은 무료 툴인 Dbeaver를 사용.
(https://dbeaver.io/download/ 경로에서 다운로드 및 설치 가능)
[ Dbeaver를 통한 데이터베이스 접속 확인 ]
접속하고자 하는 데이터베이스 종류 선택 후 다음 버튼 클릭
개인 접속 정보를 입력하여 접속
[ 데이터베이스 신규 생성 ]
신규 데이터베이스 생성
데이터베이스 생성 확인
다음은 테이블 설계 및 모델링을 진행.
테이블의 경우 아래와 같이 회원 정보 테이블을 비롯한 테이블이 설계될 예정.
순번 | 테이블명 | 비고 |
1 | 회원정보 테이블 | 일반사용자, 관리자 권한을 구분할 컬럼이 반드시 필요 |
2 | 상품정보 테이블 | 마스터 상품정보 테이블 / 디테일 상품정보 테이블로 구분 - 마스터 상품정보 테이블 : 상품에 대한 기본 정보 - 디테일 상품정보 테이블 : 상품의 상세 이미지 정보 |
3 | 장바구니 테이블 | |
4 | 결제정보 테이블 | |
5 | 게시판 테이블 | |
6 | 로그 테이블 | 스프링 인터셉터를 활용하여 사용자 로그인 시 로그를 기록하기 위한 테이블 |
[ 테이블 생성 ]
- 회원정보 테이블
CREATE TABLE `ART_USER` (
`USER_ID` varchar(50) NOT NULL COMMENT '사용자 아이디',
`AUTH_TYPE` char(1) DEFAULT NULL COMMENT '사용자 구분(관리자, 일반사용자)',
`USER_PW` varchar(200) DEFAULT NULL COMMENT '비밀번호',
`USER_NAME` varchar(20) DEFAULT NULL COMMENT '사용자 이름',
`USER_SEX` char(1) DEFAULT NULL COMMENT '사용자 성별',
`USER_PHONE` varchar(20) DEFAULT NULL COMMENT '전화번호',
`USER_EMAIL` varchar(50) DEFAULT NULL COMMENT '이메일',
`USER_ADDR` varchar(200) DEFAULT NULL COMMENT '주소',
`ZIP_CODE` varchar(6) DEFAULT NULL COMMENT '우편번호',
`OUT_YN` char(1) DEFAULT NULL COMMENT '탈퇴여부',
`INPUT_DATETIME` datetime DEFAULT NULL COMMENT '가입일자',
PRIMARY KEY (`USER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 상품정보 테이블 (Master)
CREATE TABLE `ART_PROD` (
`PROD_ID` varchar(36) NOT NULL COMMENT '상품 아이디',
`PROD_NAME` varchar(200) DEFAULT NULL COMMENT '상품명',
`PROD_DESC` varchar(500) DEFAULT NULL COMMENT '상품상세정보',
`PROD_PRICE` int DEFAULT NULL COMMENT '가격',
`PROD_CNT` int DEFAULT NULL COMMENT '수량',
`USE_YN` char(1) DEFAULT NULL COMMENT '사용유무',
`INPUT_DATETIME` datetime DEFAULT NULL COMMENT '등록일자',
PRIMARY KEY (`PROD_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 상품정보 테이블 (Detail) : 이미지 정보를 담기 위한 테이블
CREATE TABLE `ART_PROD_DETAIL` (
`DETAIL_ID` varchar(36) NOT NULL COMMENT '디테일 아이디',
`PROD_ID` varchar(36) NOT NULL COMMENT '상품 아이디',
`PROD_IMG` varchar(200) DEFAULT NULL COMMENT '이미지경로명',
`SORT` int(11) DEFAULT NULL COMMENT '이미지나열순서',
`MAIN_IMG` char(1) DEFAULT NULL COMMENT '대표이미지',
`USE_YN` char(1) DEFAULT NULL COMMENT '사용유무',
`INPUT_DATETIME` datetime DEFAULT NULL COMMENT '등록일자',
PRIMARY KEY (`DETAIL_ID`),
KEY `ART_PROD_DETAIL_FK` (`PROD_ID`),
CONSTRAINT `ART_PROD_DETAIL_FK` FOREIGN KEY (`PROD_ID`) REFERENCES `ART_PROD` (`PROD_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 장바구니 테이블
CREATE TABLE `ART_CART` (
`CART_ID` varchar(36) NOT NULL COMMENT '장바구니 아이디',
`USER_ID` varchar(50) NOT NULL COMMENT '사용자 아이디',
`PROD_ID` varchar(36) NOT NULL COMMENT '상품 아이디',
`CART_CNT` int DEFAULT NULL COMMENT '카트담은 수량',
`INPUT_DATETIME` datetime DEFAULT NULL COMMENT '등록일자',
PRIMARY KEY (`CART_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 결제정보 테이블
CREATE TABLE `ART_PAY` (
`PAY_ID` varchar(36) NOT NULL COMMENT '결제 아이디',
`USER_ID` varchar(50) NOT NULL COMMENT '사용자 아이디',
`PROD_ID` varchar(36) NOT NULL COMMENT '상품 아이디',
`PAY_CNT` int DEFAULT NULL COMMENT '결제 수량',
`CANCEL_YN` char(1) DEFAULT NULL COMMENT '결제 취소여부',
`SHIP_TYPE` char(1) DEFAULT NULL COMMENT '배송상태 (0:주문완료/1:상품준비중/2:배송중/3:배송완료)',
`INPUT_DATETIME` datetime DEFAULT NULL COMMENT '결제일자',
`CANCEL_DATETIME` datetime DEFAULT NULL COMMENT '취소일자',
`COMPLETE_DATETIME` datetime DEFAULT NULL COMMENT '배송완료일자',
PRIMARY KEY (`PAY_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 게시판 테이블
CREATE TABLE `ART_BOARD` (
`BOARD_ID` varchar(36) NOT NULL COMMENT '게시판 아이디',
`PARENT_ID` varchar(36) DEFAULT NULL COMMENT '부모 아이디 (NULL: 원글)',
`BOARD_LEVEL` int DEFAULT NULL COMMENT '글 레벨(답글인지)',
`WRITOR_ID` varchar(50) DEFAULT NULL COMMENT '작성자 ID (사용자)',
`BOARD_TITLE` varchar(100) DEFAULT NULL COMMENT '제목',
`BOARD_DESC` varchar(500) DEFAULT NULL COMMENT '내용',
`USE_YN` char(1) DEFAULT NULL COMMENT '사용여부',
`INPUT_DATETIME` datetime DEFAULT NULL COMMENT '등록일자',
PRIMARY KEY (`BOARD_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 로그 테이블
CREATE TABLE `ART_LOG` (
`LOG_ID` varchar(36) NOT NULL COMMENT '로그 아이디',
`USER_ID` varchar(50) NOT NULL COMMENT '사용자 아이디',
`INPUT_DATETIME` datetime DEFAULT NULL COMMENT '로그인일자',
PRIMARY KEY (`LOG_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
[ 다이어그램 ]
* app_local 프로퍼티 파일
- 신규 생성한 데이터베이스를 바라보도록 설정 변경할 것
'Spring ArtGallery Project' 카테고리의 다른 글
[프로젝트] 8. 화면개발 - 회원가입 페이지 구현 (Week 2) (1) | 2024.01.23 |
---|---|
[프로젝트] 7. 공통사용 스크립트 작성 (Week 2) (0) | 2024.01.23 |
[프로젝트] 5. 템플릿 적용 (Week 2) (0) | 2024.01.23 |
[프로젝트] 4. 기본설정 마무리 및 실행해보기 (Week 1) (0) | 2024.01.23 |
[프로젝트] 3. Spring Framework 설정 및 프로젝트 설정 (Week 1) (0) | 2024.01.23 |