需要帮助编写SQL以在结帐时将促销应用到购物篮

时间:2010-08-26 08:35:57

标签: sql sql-server checkout promotions

不要笑,但我是一个Lotus Notes(非关系型数据库!)开发人员试图使用SQL,尽管我已经将基本概念钉在了一起,但我仍然坚持认为是“我认为是”先进的”。

想象一下,用户在网上结账时已将一组产品添加到他们的购物篮中。我需要在篮子里申请促销。

这些促销会查看购物篮中的商品,并为与预定义“捆绑”匹配的任何组合添加“积分”。促销活动还需要能够针对特定国家/地区的用户(在注册时获得的信息)和其他个人信息。

促销活动由网站管理员团队输入和维护,并且需要尽可能灵活。因此,他们可以通过“购买Y型X产品并获得50%额外积分”或“3个或更多XE-123并获得500分”等奖励人们。

现在我正在寻找大方向。如何将与篮子中的项目匹配的条件存储到任何正在运行的促销中?一个大的存储过程是否应该或者是否应该通过所有促销来构建篮子的C#代码,看看哪个适合?

现在我甚至没有表架构。只知道它应该如何工作,并且不知道从哪里开始。

杰克

2 个答案:

答案 0 :(得分:1)

我的建议是使用SQL来实现这种业务逻辑。

数据库是保存产品信息的好地方,例如它们是Y型还是X型。这使数据库设计非常简单。

你提到的C#似乎是一个更好的方向。有很多关于3层架构的可搜索信息可以帮助解释这个策略的好处。

答案 1 :(得分:0)

'尽可能灵活'是一面红旗(恕我直言)。我试着将其归结为:

  • “定点和/或百分比(总篮子/捆绑点数)奖金(帮助表中的三列)
  • 当购物篮包含与预定义'捆绑'匹配的组合时,其中'捆绑'包含在辅助表中,其中包含多个行,捆绑ID和捆绑中每个项目的行,至少包含ItemID和数量。

没有其他类型的奖励可能。这样可以保持项目/需求的可管理性。

然后有一个SP检查篮子中是否存在捆绑并应用相关促销(存储在第一个帮助表中)。

另外,请确保您了解是否可以进行1次或多次促销活动。