【发布时间】:2015-08-06 03:09:42
【问题描述】:
我正在尝试为我的应用程序创建一个架构。我的申请是关于物业(房屋/公寓)租金管理的。
我现在面临的最大困惑是如何实施每月付款并记录这些付款以供以后报告。此外,这些付款必须与发票相结合。这有点太令人困惑了,在数据库部分我不是专家。
有很多关于在线编码的帮助,但真正创建一个模式我不确定如何学会制作如此复杂的模式。
我有大部分桌子。加上创建的付款表,其中有
paymentID,
TenantID,
TotalDues,
PaymentRecieved, //Amount Recieved for the current month dues
PaymentRemaining, //If not fully paid the dues and still remaining..
DateRecieved,
etc etc..
这只是一张简单的表格,但我真的很困惑如何使它更灵活,以便如果租户本月根本不支付租金,那么下个月应该得到总租金。或者,如果本月支付了一半或部分租金,则应在下个月进行跟踪。
我应该怎么做才能使这个系统更灵活并引入发票系统?
更新:
根据我收集的一些答案,我需要创建另一个表来记录。
所以我们会:
payment_record/Invoice
------------------------------
RecordID | Payment(Month/Year) | Electricity | Gas | Water | Rent | Total
1 Jan-2015 50 30 5 80 165
我们会有第二张桌子
Payment/Transaction
------------------------------
PaymentID | RecordID(Foreign-Key) | PaymentReceived | DateReceived
1 1 100 2015-01-08
所以第三张桌子是
PaymentDue/Status
----------------------------------
StatusID | PaymentID(Foreign-Key) | PaymentRemaining
1 1 65
我是否缺少一些东西,或者我有开始编码所需的东西?
我仍然不确定还有一件事。如果租户为当月支付了一些金额,两天后他为当月支付了更多,我会怎么做。我将如何处理?
我是否需要在paymentdue 和payment/transaction 表中输入另一个条目?
【问题讨论】:
-
第一个提示:您可以删除
PaymentRemaining,因为这可以从所需的付款减去payments.PaymentRecieved得出。 -
要跟踪欠款,也许您可以添加一个
payment_due表?如果租金每个月到期,请在此处为到期金额创建记录。您可能需要一个每日计时器系统来为租户添加任何到期记录。要计算应付款总额,您可以通过SUM(payment.due)按相关租户进行过滤。 -
(修正
DateRecieved的拼写 ->DateReceived)。 -
啊,如果你有一个
invoice,那么它可能会和我的payment_due表一样。请在您的问题中添加所有相关的表模式。 -
您可能应该在“paymentDue”表中使用 TenantID 替换 StatusID,paymentID 是可选的。对于部分付款,您只需在“交易”表中添加另一条记录,并相应地更新“paymentDue”。基本规则是,始终为“交易”和“发票”插入新条目。对于 paymentDue,如果相同的tenantID 已经存在,则始终更新条目,如果不存在则插入。