根据用户的个人资料将数据库表行与用户关联

时间:2015-11-22 05:57:35

标签: php mysql sql database laravel

首先,如果标题不具有描述性,我很抱歉。我无法找到另一种方式来实现它。

在我的应用程序中,我有优惠券的概念,用户根据优惠券的创建者标准接收优惠券。标准可以是:

  1. 标签 - 用户订阅标签(​​例如标签A和标签B),当创作者发布标签时,他可以为优惠券选择标签,如果用户订阅了标签,优惠券,他得到了。对于该任务,我有tagsuserscouponscoupon_tagtag_user表,其中包含预期的外键。 此功能已经实施。

  2. 用户的个人资料 - 优惠券的创建者可以决定他可以将优惠券发送给25岁以上,住在某个城市,已婚等的所有用户。这些数据是存储在profilesaddresses表中。 profiles表格包含user_idaddress_id。现在我想知道如何实现这样的事情?我唯一的想法是创建优惠券时,查询数据库并获取匹配这些标准的所有用户,然后对每个用户使用插入查询。这将需要coupon_user表。缺点是,如果有40k用户符合这些标准,我最终会对该表进行40k(!)插入查询!更不用说如果每天创建100张优惠券会怎样。它可以使coupon_user表每天增加数百万,我担心它会使应用程序卡住。 此功能未实施,因为我不知道该怎么做。

  3. 用户的购买数据 - 在我的应用程序中,我可以访问用户的购买数据(访问其收据),优惠券的创建者也可以决定发送在上个月在他的商店购买的每个用户的优惠券,或者在他的商店购买并在过去2个月内花费超过50美元的其他用户等。我相信这有点类似于2号但我认为是值得一提。 此功能未实现,因为我真的不知道该怎么做。

  4. 所以基本上我想做的是让选项2和3成为可能。除了选项2中建议的那个,我目前没有其他好的解决方案。

    我从来没有实现过这样的事情,我想得到你的意见。随意提出任何可能涉及或不涉及更多表格的解决方案。

0 个答案:

没有答案