费用和付款的数据库设计建议

时间:2017-02-08 05:21:30

标签: database database-design database-normalization

以下是我创建的学费和付款的当前设计。 我现在只是有点卡住,因为我无法对付款/交易表进行建模。另外,我想了解您对我当前设计的想法和评论。这是我第一次创建费用和付款数据库。

enter image description here

我担心的主要表格是schoolyearfee_ltstudent_fee_ltPayment

我正在考虑使用Payment表存储所有费用的总和,这些费用将分为所选的任何付款期限(月,季,年,现金)。

比如说,每月被选为付款计划。

amountToPayPerMonth = (sumOfAllAssignedFees / paymentterm) - downpayment

将执行amountToPayPerMonthpayment表的11个插入和1 downpayment。 11 + 1 = 12个月

如何将其标记为已付款?我应该使用其他交易表吗?

这是一个好设计吗?有什么想法或建议吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

关于你的设计和问题的一些(个人)想法。

1- schoolyearfee_lt 。看似费率为1比1。如果我很清楚同样的费用可以适用于几个shoolyears,类别等,但收费金额不会改变。例如,这意味着,每年我应该创建的费用金额变化 - 至少 - 新费用和一些费用。我相信可以在这里查看一些内容。我可以通过示例将其某些字段(schoolyear?)移动到fee_mt表,和/或我可以将金额从fee_mt移动到schoolyearfee_lt。还有一些更多的可能性,即制作表fee_years_lt,其中存储年份和金额(以及可能改变费用的其他因素)等等。也许你可以做一些这些改变,也许没有,取决于你的设计和要求。问题可能是:数量是按年份变化(我相信是),等级,足球类型,费用类别与否?您想要一个您想要永久适用的主费或每年从头开始重新创建费用吗?

2- 付款。我会用它的含义来称呼它:payment_plan。我会添加一个付费字段,一个字段payment_date和一个字段schoolyear(在当前设计中)。

3- Student_fee_lt和schoolyear 。在当前的设计中,您最好也添加年份。根据pay_mt的管理模式(见上文),我也会把它放在PK中。将年份转移到fee_mt,您不需要。是否真的需要student_fee_lt(看起来是查询结果+字段date_effective)?

4- 付款公式。首期付款以及公式对我来说有点不清楚。对于您所做的每笔付款,它是一种折扣还是固定金额?在后者你应该检查你的公式。为什么11次付款?

5- 选择付款计划存储。我会有一个表格,用于存储学生选择的付款计划(以及其他一些数据),这不应该是student_fee_lt,因为它存储了为每个学生分配的单笔费用。