阶段
我有这样的模型:
Promo(id: integer, start_date: datetime, end_date: datetime)
我想知道目前的促销活动是什么。可能是我们的查询应该是:
SELECT * FROM promos WHERE now BETWEEN start_date AND end_date;
问题
我该怎么用Ruby做呢?哪种方法是正确的?
谢谢。
(编辑)环境:
plee@sos-build:/usr/local/include/boost$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 11.10
Release: 11.10
Codename: oneiric
plee@sos-build:/usr/local/include/boost$ uname -a
Linux sos-build 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7
我还在纠结于这个:
抱歉重新措辞和重新发布..。
一旦我试图实现这些想法,我的想法就根本行不通。最大的问题是PK/FK字段似乎不兼容。这是我想到的两张桌子:
Campaign
PK Long campaignId
String description
Promotion
PK Long campaignId (FK to Campaign)
PK Long discount (unique set of discounts for the campaign)
String messgge
(每一项运动都有许多促销活动)
问题是,没有宣传对象,
我正在开发销售推广系统,我刚刚踩到了一些可能可以用状态机模式处理的东西,但我还没有使用状态机的经验。也许状态机在这种情况下完全没有用:)所以我有一个促销活动,它有一些持续时间,一些指定的客户,产品,折扣等。每个促销活动也有它的状态。大概有5个州。状态之间的转换是严格定义的-不可能直接将状态1更改为状态3-用户必须首先将状态更改为2。有一些限制,比如“当促销处于3-5状态时,不可能添加更多的产品”。或者像“只有超级用户才能编辑处于3-5状态的促销费用”这样的限制。
我刚刚读到了,但我不确定对于这个案例来说它是否太复杂了。我可以在我的服务层中使用如下内容来处理状态逻辑:
if (promotion
我正在重新开发一个遗留系统,将一篮子用户选择的零售产品匹配到一个或多个有效的促销活动中。这些促销活动是行业标准BOGOF (买一到一免费),买两免费得到第三,购买产品X和Y,得到10%的折扣,等等.但是,所有这些都要求您可以将潜在项目的列表过滤到满足这些促销要求的项目中。
我希望解决办法是把一整篮子的零售物品放在一次操作中进行分析,而不是现有的一种方法,即在订购单一产品时进行匹配。(目前的解决方案导致不受欢迎的限制)
每个促销活动都有一系列合格的产品,这些产品必须存在才能触发促销活动。这些设置按n个集合(或多个位置)排列,例如:
Example "Buy two get third f
我知道集合应该是小的,它们应该保护不变量。我还知道,在Aggregates中保存大量集合会影响性能。
我有一个用法,那需要保护它的不变量,但也会导致大量的收藏。
聚合是Vendor,它可以有多个活动促进(S)。每个促进都有 StartDate和EndDate。不变量是:
PromotionTypeat 在任何时间点上都可以有最多一次促销,每一个时间点都可以有最大2次促销。
public Vendor : Aggregate {
public Guid Id;
public List<Promotion> Promotions;
// some other V