게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
까페 운영 프로그램 제작기 -2-
게시물ID : programmer_11769짧은주소 복사하기
작성자 : 자바돌이
추천 : 2
조회수 : 483회
댓글수 : 6개
등록시간 : 2015/07/01 01:11:58
오늘은 어제 댓글로 충고해주신 분의 말씀을 새겨들어 
ERD를 작성하고 실제로 DB에 테이블을 만들었습니다 

까페 프로그램 ERD.PNG

summer테이블 -> 여름음료 데이터를 저장하는 테이블
coffee테이블 -> 커피 데이터를 저장하는 테이블
tea테이블 -> 차 음료 데이터를 저장하는 테이블
frappuccino테이블 -> 프라푸치노 음료 데이터를 저장하는 테이블

각 음료 테이블의 기본키가 되는 num칼럼을 시퀀스를 추가하여 데이터를 삽입할 때마다 1씩 증가하게 만들었습니다

chainstore테이블 -> 체인점(클라이언트) 데이터를 저장하는 테이블
chainstore 테이블은 본사 기준으로 클라이언트인 체인점의 정보를 저장하기 위해 만들었습니다
PlaceCode칼럼 역시 시퀀스를 추가하였습니다

customer테이블 -> 멤버쉽에 가입하는 회원의 정보 데이터를 저장하는 테이블
이 테이블에서 cusnum 칼럼과 placecode 칼럼때문에 오늘 낮에도 질문글을 올렸었는데요
cusnum칼럼에 placecode를 합치는게 아니라 placecode 칼럼을 chainstore테이블의 외래키로 잡았습니다

orders테이블 -> 주문받는 정보를 저장하는 테이블
아직 이 테이블에서 개인적으로 고민이 생기는 게 
한 종류의 음료를 여러개 주문 받는 경우입니다
만약 실제로 이런 상황이 벌어지게 된다면 한 번의 주문에 orders테이블을 여러 번 접근해야되는 일이 생기는데
개인적으로 비효율적이라 생각하여 어떻게 구조를 바꿔야 할지 계속 고민하고 있습니다

지금부터 실제 오라클 DBMS에 삽입한 테이블 생성 쿼리문과 시퀀스 생성 쿼리문입니다

--------------------------------여기부터 시퀀스

create sequence seq_cusnum
start with 1
increment by 1
nomaxvalue
nominvalue;

create sequence seq_coffeenum
start with 1
increment by 1
nomaxvalue
nominvalue;

create sequence seq_franum
start with 1
increment by 1
nomaxvalue
nominvalue;

create sequence seq_teanum
start with 1
increment by 1
nomaxvalue
nominvalue;

create sequence seq_summernum
start with 1
increment by 1
nomaxvalue
nominvalue;

create sequence seq_placecode
start with 1
increment by 1
nomaxvalue
nominvalue;

create sequence seq_ordernum
start with 1
increment by 1
nomaxvalue
nominvalue;

---------------------------여기부터 제품테이블

create table coffee(
coffeenum number(4) primary key,
korname varchar2(100) not null,
engname varchar2(100) not null,
price number not null);

create table summer(
summernum number(4) primary key,
korname varchar2(100) not null,
engname varchar2(100) not null,
price number not null);

create table tea(
teanum number(4) primary key,
korname varchar2(100) not null,
engname varchar2(100) not null,
price number not null);

create table frappuccino(
franum number(4) primary key,
korname varchar2(100) not null,
engname varchar2(100) not null,
price number not null);

-----------------------------여기부터 체인점테이블

create table chainstore(
placecode number(4) primary key,
placename varchar2(10) not null);

-----------------------------여기부터 고객테이블

create table customer(
cusnum number(4) primary key,
placecode constraint fk_placecode references chainstore(placecode) on delete cascade,
cusname varchar2(10) not null,
nickname varchar2(10) not null,
sex varchar2(10) constraint check_sex check(sex in('남','여')),
birth number(6) not null,
point number default 0);

----------------------------여기부터 주문테이블

create table order(
ordernum number(4) primary key,
cusnickname varchar2(10) not null,
price number not null,
coffeenum constraint fk_coffeenum references coffee(coffeenum) on delete cascade,
summernum constraint fk_summernum references summer(summernum) on delete cascade,
teanum constraint fk_teanum references tea(teanum) on delete cascade,
franum constraint fk_franum references frappuccino(franum) on delete cascade,
cusnum constraint fk_cusnum references customer(cusnum) on delete cascade,
placecode constraint fk_pcode references chainstore(placecode) on delete cascade);

이렇게 오늘 데이터베이스에 관련된 작업은 여기까지 했구요 

생각보다 위의 작업이 오래걸려서 프로그래밍 작업은 얼마 못했습니다 

까페통합관리시스템(서버)쪽 프로그램만 프레임과 버튼을 이용해 틀만 만들었습니다

temp.PNG

정말 허접하죠. 아직 버튼에 이벤트리스너도 구현 안한 상태인 완전 빈껍데기 상태입니다

오늘은 여기까지 하고 내일은 버튼에 이벤트를 추가하고 최대한 통합관리시스템의 메뉴를 실행이 되게끔 구현할 예정입니다

많은 충고 부탁드릴게요 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호