【问题标题】:generate unique voucher/code for every customer/user为每个客户/用户生成唯一的凭证/代码
【发布时间】:2019-03-25 12:48:42
【问题描述】:

我尝试建立像grou这样的网站,这是一个在商家中销售某些商品的代金券的平台。

customeruser 可以购买vouchers 并根据他们购买的vouchers 在线下商店(或商家)兑换

我对兑换凭证的逻辑或数据库设计感到困惑。我想问什么:

  1. 如何为users 购买的每张优惠券/优惠券 生成唯一代码。每张在网站上发布的凭证都有主键。如果10位客户购买了同一张优惠券,如何避免重复兑换。如果我添加唯一代码,我应该在vouchers 表中添加还是在users 结帐后生成它。

  2. 我是否应该为兑换和兑换细节制作表格。以及如果该凭证已被使用如何提供标志。

请给我一些建议。谢谢。

【问题讨论】:

    标签: database laravel database-design data-modeling laravel-5.6


    【解决方案1】:

    我认为您应该查看usersvouchers 表/模型之间的many to many relationships。这基本上意味着许多users 可以有许多vouchers,反之亦然。

    然后该表可以包含其他字段,例如 redeemed(可能是 dateTime 字段)和 notes/details。将redeemed 作为日期时间字段意味着您可以设置user 兑换此优惠券的确切时间。

    这可用于使user 不会多次兑换优惠券。

    【讨论】:

      【解决方案2】:

      第一个问题

      您可以使用凭证 ID,例如用户 ID。因此,如果我们有 2 个用户和 1 个凭证,那么这个唯一代码将是这样的:1-1、1-2。

      如果它们看起来像 1-1 和 1-2,那么在 - 标记上进行简单分解,您将拥有两个元素数组,其中第一个是凭证 ID,第二个是用户 ID。您可以将其存储在凭证表中...

      但更好的方法是使用多对多关系。您正在创建 UsersVouchersUserVouchers 表并在它们之间连接函数。用户可以有多个 userVoucher,但 userVoucher 只有一张凭证。看看我的皮卡数据库:http://www.laravelsd.com/share/8O0xtZ。这称为枢轴,您在将用户与凭证连接时创建它。

      第二个问题

      UserVoucher 关系中,您将知道此优惠券已使用了多少次。您只需要在 Vouchers 表中有一列,例如max_users,如果您在那里写例如 4,如果您在 UserVoucher 中有 4 行或在前端有 4 行,则需要防止创建新的交互,您可以检查这个并且不要t 显示购买按钮。两种安全方式都会很好;)

      【讨论】:

        猜你喜欢
        • 2018-06-25
        • 2013-03-14
        • 2014-03-09
        • 1970-01-01
        • 2016-05-20
        • 1970-01-01
        • 2018-05-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多