定制客户定价的主要定价和支持(数据库架构思想帮助 - Rails)

时间:2010-03-22 15:10:37

标签: ruby-on-rails activerecord database-design

我有一个我正在计划的个人项目,我来到了一个小障碍。

我想要一个价格为所有客户/用户默认值的商品。然而,在我的业务中,我有一些客户已经获得了一些特殊的定价。在这些案件中,我会在我的管理部分手动插入特价。然后,他们将看到的是他们的特殊定价,而普通用户/客户看到默认价格。

为此设计后端的最佳和最简单的方法是什么?

仅供参考 - 我将使用rails作为我的框架。

非常感谢!

托尼

1 个答案:

答案 0 :(得分:2)

通常我会为客户特定价格创建一个单独的表,如下所示:

Products (
   ProductID,
   ProductPrice
)

ProductSpecialPricing (
   ProductID,
   ClientID,
   ProductPrice
)

然后,当你去获得定价时,你会使用这样的查询来确保你得到合适的价格:

SELECT 
   ProductID,
   COALESCE(psp.ProductPrice, p.ProductPrice) AS ProductPrice
FROM Products p 
LEFT JOIN ProductSpecialPricing psp ON psp.ProductID = p.ProductID 
WHERE psp.ClientID = ?