【问题标题】:Payments Database Design支付数据库设计
【发布时间】:2012-11-08 14:11:22
【问题描述】:

我目前正在尝试设计一种可以跟踪每月付款的会员类型数据库设计。我有几个表,一个用于跟踪成员,另一个用于跟踪 PLANTYPES(例如,个人会员加成本 25.00 美元)或员工会员加成本 15.00 美元),其中包括一个成本字段。

我还有一个 DUES 表,我试图根据分配给每个成员的计划类型来跟踪会员费。所以我的问题是,到目前为止我有以下字段

DUAAMT, PAID(YES OR NO), DESC(COMMENTS),MEMID(LINKED FIELD TO MEMBERS TABLE),
PID(LINKED FIELD TO THE PLANTYPES TABLE)

我无法找出正确的方法来跟踪会员当月的欠款,如果他们支付了额外费用,我将如何跟踪?

我的想法是设置一个 Credit 字段,在该字段中支付的任何额外款项都将放在该字段中,一旦到期,我将首先检查会员是否有任何现有的信用,如果没有,他们将欠当月到期的全部金额.

【问题讨论】:

    标签: database-design sql-server-express


    【解决方案1】:

    会费是每月吗?

    您需要定义一个事务表。

    会费表将定义会费金额以及金额和到期日期等内容。

    每天(或每周或每月),您都会运行一个将事务附加到事务表的流程。这会根据会费金额调整余额。

    当会员支付他的会费时,一个相反的交易被应用到交易表中,余额变为 0。如果会员多付,多付只会导致一个正余额。

    您只需获取每个会员的最新交易并按余额和日期过滤,即可创建显示会员余额、到期付款的会员和逾期会员的视图。

    每个计划的每位成员都有 1 笔会费。 每次向会员收费或付款时,您都会进行 1 次交易,因此通常每月进行 2 次交易。

    所以你会:

    到期:MemberIDPlanID、DueDate

    交易:MemberIDTransactionID、金额、日期、类型(会费、付款、购买)、RunningBalance

    【讨论】:

    • 感谢您的详细解释,但是会费表中的 DueDate 字段是做什么用的?
    • 您必须知道会员的会员资格何时到期以及何时再次向他们收费。当您的会员支付其当前会费时,您会将 DueDate 提前到下一个到期日。
    【解决方案2】:

    我将有另一个付款表(memid、amount、{balance}),我将在其中跟踪会员付款(他们可以支付 3 美元 3 次 = 9 美元,但仍需支付其余的会员费用)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-17
      • 2019-05-05
      • 2012-08-04
      • 2015-10-29
      • 2021-10-28
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多