Q&A

  • 테이블 작성쿼리문좀 봐주세요..?

[자문구함] 아래에 테이블 구조는 컴퓨터 판매 대리점에서 사용하기
                위해서 작성을 해본건데요...
                여러분들의 의견을 듣고 싶어서 이렇게글을 올리는겁니다.
                제가 아직 초보라서요.
                제데로 구현은 된건지도 의문이구요.. 잘못 되거나 오류가
                있으면 좀 봐주세요..
                그럼 전문가님들의 의견을 기다리겠습니다.
                수고하세요.

[[ 사용자 테이블 ]]

CREATE TABLE KS_USER
     (
       UNO          NUMBER(15)      NOT NULL,    -- 사용자 고유 번호
       UID           VARCHAR2(15)    NOT NULL PRIMARY KEY,  -- 사용자
                                                                      아이디(로그인시 필요)
       UNAME     VARCHAR2(15)    NOT NULL,    -- 사용자 이름
       UJUMIN     NUMBER(13)      NOT NULL,     --주민등록 번호
       UHP         VARCHAR2(15)     NOT NULL,    --핸드폰 번호
       UOFFICE   VARCHAR2(15)    NOT NULL,    -- 사무실전화번호
       ULIMIT                                                   -- 사용자 권한 부여 하기
       URELATE  VARCHAR2(20),                       --관계
       UDATE      NUMBER(08)       NOT NULL,   -- 등록일
       UPHOTO                                                -- 사진 등록
       UETC_1    NUMBER(20)                           --기타 1
       UETC_2    VARCHAR(50)                          --기타 2
     );

CREATE      SEQUENCE UNO       -- 자동 증가 번호 생성 하기 //
            INCREMENT BY 1
            START WITH   1
            NOMAXVALUE
            NOCACHE
            NOCYCLE;


[[ 고객 테이블 ]]

CREATE TABLE KS_CUSTOMER
   (
   CNO                    NUMBER(20)     NOT NULL,   -- 아이디
   CNAME               VARCHAR2(15)   NOT NULL,   -- 이름(개인고객/법인고객)
   CCOMPANY         VARCHAR2(30),                      -- 회사명
   CJUMIN               NUMBER(13)      NOT NULL,   -- 주민 번호
   CHANDPHON        VARCHAR2(15)   NOT NULL,   -- 핸드폰
   COFFICE_PHONE  VARCHAR2(15),          -- 사무실 전화번호
   CHOME_PHONE   VARCHAR2(15),          -- 집 전화번호
   CADDRESS          VARCHAR2(50),          -- 주소
   CPOST               NUMBER(6),               -- 우편번호
   CBIRTH               NUMBER(08),            -- 고객 생일/ 기념일
   CHOBBY              VARCHAR2(20),          -- 고객 취미
   CVISIT_DATE       NUMBER(8),              -- 처음 방문일
   CPOINT              NUMBER(12),             -- 누적 포인트
   CPHOTO            BLOB,                        -- 사진 데이터
   CETC_1              NUMBER(20),            -- 기타 1
   CETC_2              VARCHAR2(50)           -- 기타 2
   primary key (CID, CNAME)                     -- 기본키 정의
);

CREATE      SEQUENCE CNO       -- 자동 증가 번호 생성 하기 //
            INCREMENT BY 1
            START WITH   1
            NOMAXVALUE
            NOCACHE
            NOCYCLE;


[[ 제품(품목) 테이블]]

CREATE TABLE KS_PRODUCT


       PNO            NUMBER(20)        NOT NULL,    -- 자동 증가 번호
       PRODUCT    VARCHAR2(40)      NOT NULL,   -- 품목 이름
       PRICE          NUMBER(15)        NOT NULL,    -- 가격
       PQTY          NUMBER(15)        NOT NULL,   -- 재고 수량
       PDATE        NUMBER(8)         NOT NULL,    -- 마지막
수정일(입고일/출고일)
       PPHOTO     BLOB,                                     -- 제품 사진 //
       PETC_1       NUMBER(20)                           -- 기타 1
       PETC_2        VARCHAR(50)                          -- 기타 2
       Constraint Product_pk_Product_PNO primary key (PNO, PRODUCT)
    );

CREATE      SEQUENCE PNO       -- 자동 증가 번호 생성 하기 //
            INCREMENT BY 1
            START WITH   1
            NOMAXVALUE
            NOCACHE
            NOCYCLE;

[[ 판매 테이블 ]]

CREATE TABLE KS_SALE
    (
      SNO            NUMBER(20)      NOT NULL,    -- 자동 증가 번호
      SPRODUCT   VARCHAR2(30)   NOT NULL,    -- 판매 품목
      SQTY           NUMBER(15)     NOT NULL,    -- 판매 수량
      SPRICE         NUMBER(15)      NOT NULL,    -- 판매 금액
      SDATE          NUMBER(8)       NOT NULL,    -- 판매 날짜
      SUSER         VARCHAR(20)    NOT NULL,    -- 판매자 이름
      SETC_01       NUMBER(20),                        -- 기타 1
      SETC_02       VARCHAR(50)                        -- 기타 2
    );

CREATE      SEQUENCE SNO       -- 자동 증가 번호 생성 하기 //
            INCREMENT BY 1
            START WITH   1
            NOMAXVALUE
            NOCACHE
            NOCYCLE;

ALTER TABLE KS_SALE
      ADD   PRIMARY KEY (SNO, SPRODUCT);       -- 기본키 잡기



1  COMMENTS
  • Profile
    유현성 2002.05.11 09:54
    뉍.. 초보 목동입뉘다.. -_-;;
    쿼리야 돌려 보셔서 잘 돌아 간다고 가정하고(저희 서버 교체작업 중이라 테스트를 못 했네요 -_-).. 여러 가지 고견이 있겠지만 제 생각에는 KS_USER 의 Primary Key 가 조금 이상한것 같네요.. 사용자 고유번호와 ID 를 Not null 로 묶으시고 Primary Key를 ID 로 하셨는데요.. 저희 회사에서 사용되는 ERP 테이블을 마구 컨닝한 결과 차라리 ID 보다는 고유번호(즉 사번이나.. 고객 번호 등)을 PriMary Key 로 잡으시는 것이 좋지 않을까 합니다. 또한 한가지 더 말씀 드리자면 만약 고유번호를 자동증가값으로 잡으셨는데 이건 나중에 Sort 할때나 다른 쿼리 진행시 별로 안좋을듯 하네요.. 대부분 고유 번호라는 것은 (사번,, 고객 번호등..)은 그 사람의 신상에 대한 정보가 조금이라도 들어 있는것이 좋을듯 하네요... Primary Key를 사용자 개개인이 부여 할수 있다는 것은 조금 안 좋을듯 하고요.. ID 개설하는 사용자가 어떤 규칙에 의해 만든다기 보다는 자기가 임의로 만든다고 봐야 하거든요.. 참고 하세요..