我正在为一家小型融资公司开发一个申请,他们可以在那里输入付款金额。日期将自动生成。我的问题是,考虑到一些贷款将短至6个月,而其他贷款将长达84个月,那么在MySQL中保存这些付款的最佳方法是什么?
我在想一张有169列的桌子:
REC_ID作为主键,
Date1,Amt1,Date2,Amt2等......
但是,它的效率如何?在这6个月的贷款中,在这169个专栏中,只有13个使用。
提前感谢您的输出。
答案 0 :(得分:3)
创建一个支付表,其中包含贷款ID的外键。
付款表看起来像这样
id|loan_id|payment_date|payment_amount
有一个单独的贷款表,看起来像
id|loan_amount|loan_length
当您需要了解付款的数量时,请使用loan_id作为搜索参数在付款表上运行查询。
答案 1 :(得分:0)
这将严重违反关系设计范例,每个付款和日期应该是一个与帐户表具有多对一关系的表中的自己的元组。
Accounts (REC_ID, other_stuff, other_stuff) Primary key(REC_ID);
Payments (REC_ID, timestampe, amt) Primary key (REC_ID, timestampe);
还考虑使用外键强制为每笔付款存在有效贷款。我猜这个政策是级联的,所以删除贷款和贷款的重命名都会进入付款表。