【发布时间】:2009-12-17 16:40:18
【问题描述】:
我有一个包含项目的报价(存储在 QuoteItem 表中):
QuoteItemId、QuoteId、ItemId、数量等
现在,我需要能够在报价单中创建一组选定的项目并对其应用折扣。
这很简单,我再创建两个表:
组:GroupId、DiscountPercentage
GroupQuoteItem: GroupId, QuoteItemId
假设我的报价中有 30 项。
我创建了一个包含报价单中 1-20 项的组,并对其应用了折扣。
现在我需要另一个包含项目 10-30 的组,问题是关于那些内部 10 项目,我需要控制是否应该在另一个折扣之后的项目上应用折扣,或者它应该在项目的基本价格上。
例如,我要谈谈项目编号。报价中的 15:QuoteItem.Cost = 100
我申请了 10% = 90 的第一次折扣。
现在我想申请第二个折扣,我需要能够控制折扣应该在 100 上还是应该在 90 上。
当我有多个折扣组并且想要应用复杂的折扣架构时也是如此。
我们将不胜感激。
【问题讨论】:
-
我认为您需要准确确定首先需要应用什么逻辑来计算折扣。它是特定折扣的属性,还是不能与其他属性组合?如果是这样,请将此属性与折扣 % 一起添加到组中。然后,您需要确定存在多个竞争性、不可组合折扣时的行为;这可能会在应用程序级别而不是在数据库内部处理。如果不确定应用程序逻辑的确切要求,就很难建议准确的数据库结构。
-
我不是在谈论如何计算它。我首先想知道如何创建表结构,即什么应该是什么的父级。当然,任何技术 CLR 技巧或计算技巧也将不胜感激。
标签: sql-server-2005 architecture data-structures hierarchy