CREATE TABLE TB_CATEGORIES (
    CATEGORY_NO NUMBER(30PRIMARY KEY,
    CATEGORY_NAME VARCHAR2(100NOT NULL,
    PARENT_CATEGORY_NO NUMBER(30REFERENCES TB_CATEGORIES(CATEGORY_NO)
);
 
CREATE TABLE TB_COMPANIES (
    COMPANY_NO NUMBER(3PRIMARY KEY,
    COMPANY_NAME VARCHAR2(100),
    COMPANY_TEL VARCHAR2(20),
    COMPANY_CREATE_DATE DATE DEFAULT SYSDATE
);
    
CREATE TABLE TB_GOODS (
    PRODUCT_NO NUMBER(50PRIMARY KEY,
    PRODUCT_NAME VARCHAR2(200NOT NULL,
    COMPANY_NO NUMBER(3REFERENCES TB_COMPANIES(COMPANY_NO),
    PRODUCT_PRICE NUMBER(70),
    PRODUCT_STOCK NUMBER(40),
    PRODUCT_IMAGE_NAME VARCHAR2(100),
    PRODUCT_SELL_YN CHAR(1DEFAULT 'Y' CHECK (PRODUCT_SELL_YN IN ('Y''N')),
    PRODUCT_LIKES NUMBER(50DEFAULT 0,
    PRODUCT_CREATE_DATE DATE DEFAULT SYSDATE,
    CATEGORY_NO NUMBER(30REFERENCES TB_CATEGORIES(CATEGORY_NO)
);
    
CREATE TABLE TB_CUSTOMERS (
    CUSTOMSER_NO NUMBER(5,0NOT NULL PRIMARY KEY,
    CUSTOMSER_NAME VARCHAR2(50NOT NULL,
    CUSTOMSER_ID VARCHAR2(20UNIQUE,
    CUSTOMSER_PASSWORD VARCHAR2(20NOT NULL,
    CUSTOMSER_GENDER CHAR(1) CHECK (CUSTOMSER_GENDER IN ('F''M')),
    CUSTOMSER_EMAIL VARCHAR2(256UNIQUE,
    CUSTOMSER_PHONE VARCHAR2(20),
    CUSTOMSER_ZIPCODE CHAR(5),
    CUSTOMSER_ADDRESS VARCHAR2(200),
    CUSTOMSER_CREATE_DATE DATE
);
 
CREATE TABLE TB_ORDERS (
    ORDER_NO NUMBER(50PRIMARY KEY,
    CUSTOMER_NO NUMBER(50REFERENCES TB_CUSTOMERS(CUSTOMSER_NO),
    ORDER_STATE VARCHAR2(20DEFAULT '주문완료' CHECK(ORDER_STATE IN ('주문완료''결제완료''배송중''배송완료')),
    ORDER_CREATE_DATE DATE DEFAULT SYSDATE
);
 
CREATE TABLE TB_ORDER_ITEMS (
    ORDER_ITEM_NO NUMBER(70PRIMARY KEY,
    PRODUCT_NO NUMBER(50REFERENCES TB_GOODS(PRODUCT_NO),
    ORDER_ITEM_AMOUNT NUMBER(30),
    ORDER_NO NUMBER(50REFERENCES TB_ORDERS(ORDER_NO)
);
cs

'Oracle Database SQL' 카테고리의 다른 글

190417  (0) 2019.06.07
190416(2)  (0) 2019.06.07
190415  (0) 2019.06.07
190411  (0) 2019.06.07
190410  (0) 2019.06.07

+ Recent posts