我正在为咖啡馆或快餐店开发预付费系统。前提是零售商将登录管理页面发布自己的代码,以便向预装了在柜台购买的信用卡的客户提供。
目前我已对代码系统进行了排序,系统将发出一个10位数的唯一代码,并在存储到数据库之前对其进行散列和加盐。信用分配给代码。
客户可以购买多个“代码”以建立信用额度。
我在购买时拥有的流程是用户尝试购买商品。所有优惠券的余额在购买时计算。如果购买物品有足够的信用额度,则会扣除余额,以确保优惠券有足够的信用额度。如果该商品是5.60美元,则使用信用额度最低的优惠券,优惠券现在为0.00。如果资金不足,剩余部分将从下一张可用优惠券中扣除。这将阻止任何人因购买而拥有价值.25或.50的数十张优惠券。
在优惠券表格中,我有以下结构(省略了一些表格数据)
+------------+----------------+----------------------+
| id | code | balance |
+------------+----------------+----------------------+
| 1 | abcde | 10.00 |
+------------+----------------+----------------------+
| 2 | fghij | 20.00 |
+------------+----------------+----------------------+
| 3 | klmno | 25.00 |
+------------+----------------+----------------------+
交易表类似于..
+------------+----------------+----------------------+
| id | coupon | value |
+------------+----------------+----------------------+
| 1 | abcde | 2.59 |
+------------+----------------+----------------------+
| 2 | abcde | 4.50 |
+------------+----------------+----------------------+
| 3 | klmno | 25.00 |
+------------+----------------+----------------------+
我的理论是优惠券的价值永远不会改变,但交易的价值会在购买时计算并扣除,以给出余额。
这看起来像是一种实用的方法吗?
如果你认为这个问题不属于这里,而不是投票提供更好的论坛。
答案 0 :(得分:0)
理论上听起来不错,但由于你必须保留所有优惠券和交易的记录,因此购买均衡的优惠券无关紧要 - 你只需要总和。 如果优惠券可以在个人之间转让,则您必须首先扫描客户可用的所有优惠券,然后才能决定要检查其余额的优惠券。看起来对我来说不切实际。 如果优惠券不可转让,它们只是客户自己账户上的存款收据,单挑其中一张可以用来检查。