다음 디자인에 문제가 있습니까? 기본적으로 두 가지 항목 (예 : $ 20 및 $ 30)으로 분할 된 고객 (예 : $ 50)의 총 지불액을 추적하고 싶습니다. 하지만 ITEM (ITEM_ID) 항목을 살펴보고 고객이 총 금액 인 청구서에 지출 한 금액 (PAYMENT_AMOUNT)을 알고 싶습니다. 나는 최소한의 열을 포함 간단하게하려면 :SQL 동일한 기본 키를 가리키는 여러 개의 외래 키
CREATE TABLE ITEM (
ITEM_ID NUMBER(7,0) NOT NULL,
ITEM_SALE_AMT NUMBER(7,2) NOT NULL,
PAYMENT_ID NUMBER(7,0) NOT NULL,
PRIMARY KEY (ITEM_ID),
FOREIGN KEY (PAYMENT_ID) REFERENCES PAYMENT(PAYMENT_ID)
);
CREATE TABLE PAYMENT (
PAYMENT_ID NUMBER(7,0) NOT NULL,
PAYMENT_AMOUNT NUMBER(7,2) NOT NULL,
ITEM_1 NUMBER(7,0) ,
ITEM_2 NUMBER(7,0) ,
PRIMARY KEY (PAYMENT_ID),
FOREIGN KEY (ITEM_1) REFERENCES ITEM(ITEM_ID),
FOREIGN KEY (ITEM_2) REFERENCES ITEM(ITEM_ID)
);
첫째, 각 항목 (그래서 당신은 같은 항목이 개 지불을 할 수 없습니다) 유일하다. 분명히 고객이 한 거래에서 많은 항목을 지불하는 경우 지불 표에 많은 열이 생깁니다 (단, 30 년 내에 한 번도 발생하지 않았으며 대개 1, 경우에 따라 2 또는 3).
내가 볼 수 없거나 개선 될 수있는 주요 결함이 있습니까?
감사합니다. 간단한 프로그램을 만들려고합니다. 만약 당신이 투표 할 수 있지만 그냥 가입 : – Viet
당신은 여전히 [대답을 수락 할 수 있어야합니다 (http://meta.stackoverflow.com/help/someone-answers) –
어쨌든. 그것을하는 방법을 알아 내기 위해 google해야했다 (게시 hehe 후 15 의분을 기다려야한다) – Viet