2012-09-25 84 views
-1

我正在爲一家小型融資公司開發應用程序,他們可以在這裏輸入付款金額。日期將自動生成。我的問題是,考慮到一些貸款將短至6個月,而其他的將會長達84個月,那麼在MySQL中保存這些付款的最佳方式是什麼?在數據庫中保存付款日期和金額

我在想一個表169列:

·REC_ID作爲主鍵, 日期1,AMT1,日期2,AMT2等..

但是,如何有效的會是誰?在這6個月的貸款中,169個專欄中只有13個會被使用。

在此先感謝您的輸出。

+9

請不要,幾個表,加入,db規範化,那種事情。 – 2012-09-25 19:53:48

+0

極其無效。對於每個參與者。 – gbtimmon

回答

3

創建一個支付表,其中包含貸款ID的外鍵。

支付表將是這個樣子

id|loan_id|payment_date|payment_amount 

有貸款的一個單獨的表,將看起來像

id|loan_amount|loan_length 

當你需要找出多少款項已作出運行一個以loan_id作爲搜索參數在支付表上查詢。

+1

+1由於(loan_id,payment_date)也是此表中的關鍵字,所以您甚至不需要付款表中的id。 – Christina

0

這將嚴重違反關係設計範例,每個支付和日期應該可能是一個表中的一個自己的元組,並且與賬戶表有多對一的關係。

Accounts (REC_ID, other_stuff, other_stuff) Primary key(REC_ID); 
Payments (REC_ID, timestampe, amt) Primary key (REC_ID, timestampe); 

還可以考慮使用外鍵來強制每次付款存在有效貸款。我猜想這個政策會是級聯的,因此刪除貸款的負載和重命名將會延續到付款表中。