0
我的後續設計是否會出現問題?基本上,我想跟蹤一個客戶的總支付額(例如50美元),這個支付額分爲兩個項目(例如20美元和30美元)。但我希望能夠查看任何項目 - 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) –
只是做了。不得不穀歌找出如何做到這一點(必須等待15分鐘後嘿嘿) – Viet