프로젝트 회고/팀프로젝트

JSP와 MySQL를 이용한 도서 판매 시스템 (DB편)

류창 2021. 10. 11. 14:57
반응형

팀프로젝트중에서, 저는 백엔드 부분(Database)을 팀원 1분과 함께 담당했습니다.

 

남은 팀원 2분은 디자인부분(화면 디자인 구성, 페이지 설계)을 담당하셧습니다.

 

 

 

ER다이어그램

 PPT로 간략하게 구성했습니다

ER다이어그램은 제가 담당했습니다. 팀원 4명과 교수님이 도와주신걸 바탕으로 작성하였습니다.

 

 데이터베이스 스키마(각 테이블의 릴레이션 스킴 나열)

 

books(isbn: bigint(20), bname: varchar(30) ,writer varchar(20),publisher varchar(20),price int(11) ,reviewcnt int(11), sellcnt int(11),rateavg float)

 

buying(buyingno int(11),isbn bigint(20) ,customer_id varchar(20),date date,buyingcnt int(11) ,price int(11),purchase varchar(10),rating float,

review varchar(45), reviewdate date,shipping int(11),shipdate date,

carrier varchar(20))

 

cancel(buyingno int(11) ,customer_id varchar(20) ,date date ,reason varchar(45))

 

customer(id varchar(20),cname varchar(10),age int(11) ,address varchar(20),

pw varchar(20), buycnt int(11),buysum int(11))

 

manager(id varchar(20),mname varchar(10) ,age int(11) ,pw varchar(20))

 

 

 

테이블 생성을 위한 SQL문

 

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
drop database if exists bookstore;
create database bookstore;
use bookstore;
drop table if exists customer;
CREATE TABLE customer
(
    id VARCHAR(20NOT NULL,
    cname VARCHAR(10NULL,
    age INT NULL,
    address VARCHAR(20NULL,
    pw VARCHAR(20NULL,
    buycnt INT NULL,
    buysum INT NULL,
    PRIMARY KEY(id)
);
 
drop table if exists manager;
CREATE TABLE manager
(
    id VARCHAR(20NOT NULL,
    mname VARCHAR(10NULL,
    age INT NULL,
    pw VARCHAR(20NULL,
    PRIMARY KEY(id)
);
 
drop table if exists books;
CREATE TABLE books
(
    isbn BIGINT NOT NULL,
    bname VARCHAR(30NULL,
    writer VARCHAR(20NULL,
    publisher VARCHAR(20NULL,
    category VARCHAR(20NULL,
    price INT NULL,
    reviewcnt INT NULL,
    sellcnt INT NULL,
    rateavg FLOAT NULL,
    PRIMARY KEY(isbn)
);
 
drop table if exists buying;
CREATE TABLE buying
(
    isbn BIGINT NOT NULL,
    customer_id VARCHAR(20NOT NULL,
    buyingno INT NOT NULL,
    date DATE NOT NULL,
    buyingcnt INT NULL,
    price INT NULL,
    rating FLOAT NULL,
    review VARCHAR(45NULL,
    reviewdate DATE NULL,
    shipping VARCHAR(20NULL,
    shipdate DATE NULL,
    carrier VARCHAR(20NULL,
    PRIMARY KEY(buyingno),
    foreign key(isbn) references books(isbn),
    foreign key(customer_id) references customer(id)
);
drop table if exists cancel;
CREATE TABLE cancel
(
    buyingno INT NOT NULL,
    isbn BIGINT NOT NULL,
    customer_id VARCHAR(20NOT NULL,
    date DATE NULL,
    reason VARCHAR(45NULL,
    PRIMARY KEY(buyingno),
    foreign key(isbn) references books(isbn),
    foreign key(buyingno) references buying(buyingno),
    foreign key(customer_id) references buying(customer_id)
);
cs

 

처음 Create문을 작성은 다른 팀원 이 하시고, 

그후 제가 외래키(참조)와 주요키 오류, ER다이어그램에서 빠진 컬럼을 수정하고 

마무리 했습니다.

 

 

초기 데이터 SQL문

1
2
3
4
5
6
7
8
9
10
use bookstore;
 
insert into customer values('cs123''김철수'25'서울시 서초구''123''0''0');
insert into customer values('ghpark''박기현'42'경기도 화성''4455''0''0');
insert into customer values('lh002''이영희'19'서울시 강동구''789789''0''0');
insert into books values(9788972756194,'나미야 잡화점의 기적''히가시노 게이고''현대문학','해외도서',12000000);
insert into books values(9788965707592,'사랑하게 해줘서, 고마워''김재식''쌤앤파커스','국내도서',9800000);
insert into books values(9791160560381,‘말이 칼이 될 때‘,’홍성수‘,’어크로스‘,’국내도서‘,9500,0,0,0);
insert into manager values('lgc01','이기철',30,'root');
insert into buying values(9788972756194'cs123'120210423112000null,null,null,'배송준비',null,null);
cs

 

테이블을 생성하고, 테스트용으로 손님, 책, 매니저, 구입 정보를 입력하는 SQL문을 작성했습니다.

 

 

반응형