Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코드프로그래머스
- lazy loading
- 명시적외래키
- error
- EFCore
- scanner
- extraParams
- c#코딩의기술실전편
- .net
- mac
- minimalAPI
- vscode
- JSON
- dbContext
- 라도무스dvd
- 스냅잘찍음
- JavaScript
- 대전본식영상
- React
- 상속
- 에스가든스냅
- ORM
- c#
- intellij
- Config
- LINQ
- ViewModel
- Store
- extjs
- Request
Archives
- Today
- Total
ejyoo's 개발 노트
ERD 본문
아래와 같은 형태로 만들것임.
테이블을 클릭한 후 ERD 화면 클릭
생성된 테이블을 더블클릭
논리명과 물리명 입력 후
추가 버튼을 클릭하여 필드를 생성
생성할 때 UNIQUE는 체크 해제할것 -> 나중에 SQL 추출 시 문제가 됏엇음.
관계 차수 설정 시 외래키가 자동으로 등록되며
생성한 필드와 외래키가 중복되는 것이 잇으면 생성한 필드를 지우고 외래키를 사용할것
(원래는 관게차수 설정할 때, 웬만하면 그냥 들어오는데 현재 설계할 때 물리명이 달라서 외래키가 추가로 하나가 생성된것임.)
설계도중 복합키가 잇으면 아래와 같이 기본키를 2개로 설정
설계할 대 외래키 고려를 하고 현 필드내에서 부모키에서 전이된 필드와 중복되는게 잇어서 제거함.
설계 시 아래와같이 자료형을 만들고자 하는 경우
형식을 이렇게 선택함.
인덱스를 생성하는 방법임.
인덱스명, 설명작성하고 인덱스를 적용할 컬럼을 클릭한 뒤 -> 버튼을 클릭하고 저장한다.
우클릭 - 내보내기 - ddl 클릭
Create 영역에 Export할 체크박스 체크
Export 완료.
이대로 SQL developer 에 SQL문 작성후 실행하면 테이블이 정상적으로 생성된다.
만약 정상적으로 생성되지 않는 경우
(실제 발생한 문제임.)
Unique 가 SQL 문에들어있으면 지우고
index에 'using betreen' 이 있는 경우 삭제하고 실행한다.
/* Drop Indexes */
DROP INDEX IDX_ZIPTB_ZIPCODE;
/* Drop Tables */
DROP TABLE BUYPROD CASCADE CONSTRAINTS;
DROP TABLE CARD CASCADE CONSTRAINTS;
DROP TABLE PROD CASCADE CONSTRAINTS;
DROP TABLE BUYER CASCADE CONSTRAINTS;
DROP TABLE LPROD CASCADE CONSTRAINTS;
DROP TABLE MEMBER CASCADE CONSTRAINTS;
DROP TABLE ZIPTB CASCADE CONSTRAINTS;
/* Create Tables */
CREATE TABLE BUYER
(
-- 거래처 코드
BUYER_ID char(6) NOT NULL,
-- 상품 분류 코드 LPROD_GU
BUYER_LGU char(4) NOT NULL,
-- 거래처 명
BUYER_NAME varchar2(60) NOT NULL,
-- 은행
BUYER_BANK varchar2(60),
-- 계좌번호
BUYER_BANKNO varchar2(60),
-- 예금주
BUYER_BANKNAME varchar2(15),
-- 우편번호
BUYER_ZIP char(7),
-- 주소1
BUYER_ADD1 varchar2(100),
-- 주소2
BUYER_ADD2 varchar2(70),
-- 전화번호
BUYER_COMTEL varchar2(14) NOT NULL,
-- FAX번호
BUYER_FAX varchar2(20) NOT NULL,
-- 이메일 주소
BUYER_MAIL varchar2(60) NOT NULL,
-- 담당자
BUYER_CHARGER varchar2(20),
-- 거래처 전화 번호
BUYER_TELXT varchar2(2),
PRIMARY KEY (BUYER_ID)
);
CREATE TABLE BUYPROD
(
-- 입고 일자
BUY_DATE date NOT NULL,
-- 상품 코드
PROD_ID varchar2(10) NOT NULL,
-- 매입 수량
BUY_QTY number(10,0) NOT NULL,
-- 매입 단가
BUY_COST number(10,0) NOT NULL,
PRIMARY KEY (BUY_DATE, PROD_ID)
);
CREATE TABLE CARD
(
-- 주문 번호
CART_NO char(13) NOT NULL,
-- 상품 코드
PROD_ID varchar2(10) NOT NULL,
-- 회원 ID
MEM_ID varchar2(15) NOT NULL,
-- 수량
CART_QTY number(8) NOT NULL,
PRIMARY KEY (CART_NO, PROD_ID)
);
CREATE TABLE LPROD
(
-- 순번
LPROD_ID number(5) NOT NULL,
-- 상품 분류 코드
LPROD_GU char(4) NOT NULL,
-- 상품 분류 명
LPROD_NM varchar2(40) NOT NULL,
PRIMARY KEY (LPROD_GU)
);
CREATE TABLE MEMBER
(
-- 회원 ID
MEM_ID varchar2(15) NOT NULL,
-- 비밀 번호
MEM_PASS varchar2(15) NOT NULL,
-- 성명
MEM_NAME varchar2(15) NOT NULL,
-- 주민 등록 번호 앞 6 자리
MEM_REGNO1 char(6) NOT NULL,
-- 주민 등록 번호 뒤 7 자리
MEM_REGNO2 char(7) NOT NULL,
-- 생일
MEM_BIR date,
-- 우편 번호
MEM_ZIP char(7) NOT NULL,
-- 주소1
MEM_ADD1 varchar2(100) NOT NULL,
-- 주소2
MEM_ADD2 varchar2(80) NOT NULL,
-- 집 전화 번호
MEM_HOMETEL varchar2(14) NOT NULL,
-- 회사 전화 번호
MEM_COMTEL varchar2(14) NOT NULL,
-- 이동 전화
MEM_HP varchar2(15),
-- 이메일 주소
MEM_MAIL varchar2(60) NOT NULL,
-- 직업
MEM_JOB varchar2(40),
-- 취미
MEM_LIKE varchar2(40),
-- 기념 일 명
MEM_MEMORIAL varchar2(40),
-- 기념 일 날짜
MEM_MEMORIALDAY date,
-- 마일리지
MEM_MILEAGE number(10,0),
-- 삭제 여부
MEM_DELETE varchar2(1),
PRIMARY KEY (MEM_ID)
);
CREATE TABLE PROD
(
-- 상품 코드
PROD_ID varchar2(10) NOT NULL,
-- 상품 분류 코드
LPROD_GU char(4) NOT NULL,
-- 거래처 코드
BUYER_ID char(6) NOT NULL,
-- 상품 명
PROD_NAME varchar2(40) NOT NULL,
-- 매입 가
PROD_COST number(10) NOT NULL,
-- 소비자 가
PROD_PRICE number(10) NOT NULL,
-- 판매 가
PROD_SALE number(10) NOT NULL,
-- 상품 개략 설명
PROD_OUTLINE varchar2(100) NOT NULL,
-- 상품 상세 설명
PROD_DETAIL clob,
-- 이미지 소
PROD_IMG varchar2(40) NOT NULL,
-- 재고 수량
PROD_TOTALSTOCK number(10) NOT NULL,
-- 신규 일자 등록 일
PROD_INSDATE date NOT NULL,
-- 안전 재고 수량
PROD_PROPERSTOCK number(10) NOT NULL,
-- 크기
PROD_SIZE varchar2(20),
-- 색상
PROD_COLOR varchar2(20),
-- 배달 특기 사항
PROD_DELIVERY varchar2(255),
-- 단위 수량
PROD_UNIT varchar2(6),
-- 총 입고 수량
PROD_QTYIN number(10),
-- 총 판매 수량
PROD_QTYSALE number(10),
-- 개당 마일리지 점수
PROD_MILEAGE number(10),
PRIMARY KEY (PROD_ID)
);
CREATE TABLE ZIPTB
(
-- 우편 번호
ZIPCODE char(7) NOT NULL,
-- 특별시 광역시 도
SIDO nvarchar2(2) NOT NULL,
-- 시 군 구
GUGUN nvarchar2(10) NOT NULL,
-- 읍 면 동 리 건물 명
DONG nvarchar2(30) NOT NULL,
-- 번지 아파트 동 호수
BUNJI varchar2(10),
-- 자료 순서
SEQ number(5,0) NOT NULL
);
/* Create Foreign Keys */
ALTER TABLE PROD
ADD FOREIGN KEY (BUYER_ID)
REFERENCES BUYER (BUYER_ID)
;
ALTER TABLE BUYER
ADD FOREIGN KEY (BUYER_LGU)
REFERENCES LPROD (LPROD_GU)
;
ALTER TABLE PROD
ADD FOREIGN KEY (LPROD_GU)
REFERENCES LPROD (LPROD_GU)
;
ALTER TABLE CARD
ADD FOREIGN KEY (MEM_ID)
REFERENCES MEMBER (MEM_ID)
;
ALTER TABLE BUYPROD
ADD FOREIGN KEY (PROD_ID)
REFERENCES PROD (PROD_ID)
;
ALTER TABLE CARD
ADD FOREIGN KEY (PROD_ID)
REFERENCES PROD (PROD_ID)
;
/* Create Indexes */
-- IDX_ZIPTB_ZIPCODE
CREATE INDEX IDX_ZIPTB_ZIPCODE ON ZIPTB USING BTREE (ZIPCODE);
/* Comments */
COMMENT ON COLUMN BUYER.BUYER_ID IS '거래처 코드';
COMMENT ON COLUMN BUYER.BUYER_LGU IS '상품 분류 코드 LPROD_GU';
COMMENT ON COLUMN BUYER.BUYER_NAME IS '거래처 명';
COMMENT ON COLUMN BUYER.BUYER_BANK IS '은행';
COMMENT ON COLUMN BUYER.BUYER_BANKNO IS '계좌번호';
COMMENT ON COLUMN BUYER.BUYER_BANKNAME IS '예금주';
COMMENT ON COLUMN BUYER.BUYER_ZIP IS '우편번호';
COMMENT ON COLUMN BUYER.BUYER_ADD1 IS '주소1';
COMMENT ON COLUMN BUYER.BUYER_ADD2 IS '주소2';
COMMENT ON COLUMN BUYER.BUYER_COMTEL IS '전화번호';
COMMENT ON COLUMN BUYER.BUYER_FAX IS 'FAX번호';
COMMENT ON COLUMN BUYER.BUYER_MAIL IS '이메일 주소';
COMMENT ON COLUMN BUYER.BUYER_CHARGER IS '담당자';
COMMENT ON COLUMN BUYER.BUYER_TELXT IS '거래처 전화 번호';
COMMENT ON COLUMN BUYPROD.BUY_DATE IS '입고 일자';
COMMENT ON COLUMN BUYPROD.PROD_ID IS '상품 코드';
COMMENT ON COLUMN BUYPROD.BUY_QTY IS '매입 수량';
COMMENT ON COLUMN BUYPROD.BUY_COST IS '매입 단가';
COMMENT ON COLUMN CARD.CART_NO IS '주문 번호';
COMMENT ON COLUMN CARD.PROD_ID IS '상품 코드';
COMMENT ON COLUMN CARD.MEM_ID IS '회원 ID';
COMMENT ON COLUMN CARD.CART_QTY IS '수량';
COMMENT ON COLUMN LPROD.LPROD_ID IS '순번';
COMMENT ON COLUMN LPROD.LPROD_GU IS '상품 분류 코드';
COMMENT ON COLUMN LPROD.LPROD_NM IS '상품 분류 명';
COMMENT ON COLUMN MEMBER.MEM_ID IS '회원 ID';
COMMENT ON COLUMN MEMBER.MEM_PASS IS '비밀 번호';
COMMENT ON COLUMN MEMBER.MEM_NAME IS '성명';
COMMENT ON COLUMN MEMBER.MEM_REGNO1 IS '주민 등록 번호 앞 6 자리';
COMMENT ON COLUMN MEMBER.MEM_REGNO2 IS '주민 등록 번호 뒤 7 자리';
COMMENT ON COLUMN MEMBER.MEM_BIR IS '생일';
COMMENT ON COLUMN MEMBER.MEM_ZIP IS '우편 번호';
COMMENT ON COLUMN MEMBER.MEM_ADD1 IS '주소1';
COMMENT ON COLUMN MEMBER.MEM_ADD2 IS '주소2';
COMMENT ON COLUMN MEMBER.MEM_HOMETEL IS '집 전화 번호';
COMMENT ON COLUMN MEMBER.MEM_COMTEL IS '회사 전화 번호';
COMMENT ON COLUMN MEMBER.MEM_HP IS '이동 전화';
COMMENT ON COLUMN MEMBER.MEM_MAIL IS '이메일 주소';
COMMENT ON COLUMN MEMBER.MEM_JOB IS '직업';
COMMENT ON COLUMN MEMBER.MEM_LIKE IS '취미';
COMMENT ON COLUMN MEMBER.MEM_MEMORIAL IS '기념 일 명';
COMMENT ON COLUMN MEMBER.MEM_MEMORIALDAY IS '기념 일 날짜';
COMMENT ON COLUMN MEMBER.MEM_MILEAGE IS '마일리지';
COMMENT ON COLUMN MEMBER.MEM_DELETE IS '삭제 여부';
COMMENT ON COLUMN PROD.PROD_ID IS '상품 코드';
COMMENT ON COLUMN PROD.LPROD_GU IS '상품 분류 코드';
COMMENT ON COLUMN PROD.BUYER_ID IS '거래처 코드';
COMMENT ON COLUMN PROD.PROD_NAME IS '상품 명';
COMMENT ON COLUMN PROD.PROD_COST IS '매입 가';
COMMENT ON COLUMN PROD.PROD_PRICE IS '소비자 가';
COMMENT ON COLUMN PROD.PROD_SALE IS '판매 가';
COMMENT ON COLUMN PROD.PROD_OUTLINE IS '상품 개략 설명';
COMMENT ON COLUMN PROD.PROD_DETAIL IS '상품 상세 설명';
COMMENT ON COLUMN PROD.PROD_IMG IS '이미지 소';
COMMENT ON COLUMN PROD.PROD_TOTALSTOCK IS '재고 수량';
COMMENT ON COLUMN PROD.PROD_INSDATE IS '신규 일자 등록 일';
COMMENT ON COLUMN PROD.PROD_PROPERSTOCK IS '안전 재고 수량';
COMMENT ON COLUMN PROD.PROD_SIZE IS '크기';
COMMENT ON COLUMN PROD.PROD_COLOR IS '색상';
COMMENT ON COLUMN PROD.PROD_DELIVERY IS '배달 특기 사항';
COMMENT ON COLUMN PROD.PROD_UNIT IS '단위 수량';
COMMENT ON COLUMN PROD.PROD_QTYIN IS '총 입고 수량';
COMMENT ON COLUMN PROD.PROD_QTYSALE IS '총 판매 수량';
COMMENT ON COLUMN PROD.PROD_MILEAGE IS '개당 마일리지 점수';
COMMENT ON COLUMN ZIPTB.ZIPCODE IS '우편 번호';
COMMENT ON COLUMN ZIPTB.SIDO IS '특별시 광역시 도';
COMMENT ON COLUMN ZIPTB.GUGUN IS '시 군 구';
COMMENT ON COLUMN ZIPTB.DONG IS '읍 면 동 리 건물 명';
COMMENT ON COLUMN ZIPTB.BUNJI IS '번지 아파트 동 호수';
COMMENT ON COLUMN ZIPTB.SEQ IS '자료 순서';
ejyoo 네이버 블로그 긁어옴
blog.naver.com/o3k3585/222212421388
'DB > Oracle' 카테고리의 다른 글
insert 문 여러개 입력(테이블이 같은경우, 테이블이 다른경우) (0) | 2021.04.25 |
---|---|
ERMaster 설치 (0) | 2021.04.15 |
ORACLE 한글 3바이트 → 2바이트로 변경 (0) | 2021.03.04 |
OPTIMIZER 의 실행계획 확인하기 (0) | 2021.03.04 |
OPTIMIZER 의 실행계획 확인하기 (0) | 2021.03.04 |