【问题标题】:How should I implement this credit system?我应该如何实施这个信用体系?
【发布时间】:2011-11-26 22:00:38
【问题描述】:

我正在创建一个网站,家庭成员可以在其中预订家庭海上小屋的假期。 每个成员每年分配 40 个学分。会员必须有足够的积分才能预订假期。 (这个信用系统确保每个成员都有平等的机会入住小屋) 但是,并非所有周都需要相同数量的积分,最后一分钟预订不需要积分。

我的问题是:我应该如何将信用积分存储在数据库中?什么是最有效的?每天/每两天/每周?以及如何使用 mysql 有效地检查给定日期范围需要多少学分?

顺便说一句:我正在使用 Zend 框架并且我熟悉代码等,我只需要一些概念上的建议;)

【问题讨论】:

    标签: mysql database date date-range


    【解决方案1】:

    我不知道我是否理解这里的问题,但是:

    • 您需要在“用户”表中存储每个用户的剩余信用额度。
    • 您需要有另一个表格,其中包含“开始时间”、“结束时间”、“持续时间”、“需要的点数”等字段
    • 在持续时间字段中,它可以是具有“day”、“week”、“last_minute”等值的枚举。

    然后逻辑将在您的 PHP 代码中,但这样,您将能够在用户想要使用小屋时获得所需的正确数量的积分。

    【讨论】:

      【解决方案2】:

      如果我正确理解了您的情况,我想我会存储以下内容:

      • 每位用户的剩余积分数
      • 每天的默认积分数
      • 在此之前的天数算作“最后一分钟”
      • 信用成本偏离的时期,包括(开始日期、结束日期、每天的成本)

      然后,每当用户需要进行预订时,我都会根据此信息动态计算预订费用。最后一分钟的预订规则可以看作是一个特殊的偏离期,开始日期是现在,结束日期是现在+“天数”,成本为零。

      我认为没有人会预订小屋的时间短于一天。如果他们愿意,我会将上面“天”的使用更改为任何合理的时间单位。

      只是我的想法。 :-)

      【讨论】:

      • 谢谢!是的,我想我将只使用开始日期、结束日期并将逻辑放入 php 代码中。
      • 是的,这可能是个好主意。没有想法过度概括我认为将是一个相当小的应用程序。 :-)
      猜你喜欢
      • 2017-02-28
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多