SQL 쇼핑몰 DB 설계 예제
관련링크
본문
//회원테이블
create table member(
M_id number,
M_pw varchar2(20),
M_name varchar2(20),
M_regi_date default sysdate,
M-email varchar2(20) constraint M_email_nn not null,
constraint M_id_pk primary key (M_id),
constraint M_email_uk unique (M_email)
);
//상품
create table goods(
goods_code number,
goods_name varchar(20),
goods_price number,
goods_state char(1),
constrain goods_code_pk primary key(goods_code)
);
//장바구니
create table cart(
M_id number,
goods_code number,
buy_unit number
constraint M_id_pk foreign key (M_id)
references member (M_id),
constraint goods_code_pk foreign key (goods_code)
references goods (goods_code),
constraint M_id_ goods_code primary key (M_id, goods_code)
);
입고
creat ipgo(
goods_code number,
enter_date date,
...
constraint goods_code_fk foreign key (goods_code)
references goods(goods_code),
constraint goods_code_date_pk primary key(goods_code, enter_date)
♡♡♡♡♡♡ 핵심은 FORRIGN 키 이며
FORRIGN KEY 가 있는 테이블은 부모테이블(왜레키)에 데이타가 입력되 있지 않으면 테이블이 만들어 지지 않는다.
제약조건 이름을 만들때 이름이 다른 테이블에서 사용하고 있으면 안된다.
자식데이타가 있는 행(레코드)는 삭제는 안되고 반드시 자식데이타 먼저 지우고 나서 본 데이타를 지울 수 있다.
또한 업데이트도 안된다.
즉 만약 장바구니에 들어간 회원이 있다면 그 회원은 탈퇴가 안된다.
왜냐하면 탈퇴시켜버리면 회계가 틀려지기 때문이다.
TIP 만약퇴시키고 싶다면 장바구니에 그 회원정보를 가짜회원 으로 바꿔준 후 탈퇴가 가능하다.
또는 장바구니의 그 회원아이디를 NULL 로 처리 하기도 한다.
이런식의 것을 관계형데이타베이스 라 칭한다.