3

你将如何设计你的数据库来实现这个功能?

考虑一个我们想要创建产品关系(包)的场景......

假设我们创建了一个ProductTbl

prod_id   prod_name    prod_fee
1         prepaid-A    19 usd
2         prepaid-B    29 usd
3         prepaid-C    39 usd
4         internet      9 usd
5         mms           1 usd
6         email         3 usd

我们希望提供一个产品包,为客户提供更好的费用。

例如,如果客户选择prepaid-A + internet + mms,他们将收取 25 美元的 pkg 费用(而不是 29 美元)。

设计

  • 具有相同组合的 pkg 应该只存在一次。
  • 如果可能,一个 pkg 可以有无限数量的产品。(通常是 2-4 个)。

例如 pkg 组合

产品包装表

ppkg_id   prod_name    prod_fee
1         prepaid-A    25 usd
1         mms          25 usd
1         internet     25 usd

2         internet     10 usd
2         email        10 usd

3         prepaid-C    45 usd
3         internet     45 usd
3         mms          45 usd
3         email        45 usd

这意味着组合

  • pkgid 1 -> prepaid-a、mms 和 internet,pkg 费用为 25 美元
  • pkgid 2 -> 互联网和电子邮件一起收取 10 美元的费用
  • pkgid 3 -> prepaid-c, internet, mms, email all together for 45 usd

因此,如果客户只获得了预付-c + 互联网,他们没有得到 45 美元的交易,他们将支付 39 + 9 = 48 美元的正常费用。

现在这个表格只是为了演示,我想得到你的意见和建议,以便朝着正确的方向建模。

我们需要首先选择查询客户当前的费用计划(基于使用的产品/服务),然后查看产品 pkg 并查看 pkg 交易是否对他们有效。

(如何做这样的选择?在 pkg 表上?)如何为此有一个好的数据库模型?

请提供网址、提示和任何有价值的建议,以将我推向正确的方向。

十分感谢。

4

2 回答 2

2

您正在销售目录中的商品或服务。您也可以出售上述组合。这称为营销包(或捆绑或组合)。

营销包也从目录中出售。它可以由商品、服务或其他营销包组成。

每个订单的价格确实不同。您可以在 good 表中设置基价,在 service 表中设置月价,在营销包表中设置基价。

在此处输入图像描述

于 2013-02-20T21:09:25.107 回答
0

我希望对此有一些意见,但也许问题是“混乱”来回答。:o)

我现在的模型是这样的:

产品表

prod_id   prod_name    prod_fee
1         prepaid-A    19 usd
2         prepaid-B    29 usd
3         prepaid-C    39 usd
4         internet      9 usd
5         mms           1 usd
6         email         3 usd

产品包装表

ppkg_id   prod_id      prod_name 
1         1            prepaid-A 
1         5            mms       
1         4            internet  

2         4            internet  
2         6            email     

3         3            prepaid-C 
3         4            internet  
3         5            mms       
3         6            email     

ProductPkgFeeTbl

ppkg_id   ppkig_fee
1         25
2         10
3         45

但是上面有一些缺陷,那就是有人可以将相同的产品插入不同的 pkg 并收取不同的费用。

我真的不知道如何使用 sql 确保 pkg 是唯一的。好吧,当然可以使用编程语言/存储过程/触发器等进行检查!但我想要一个 100% 完美无瑕的设计。

请根据您在此类问题上的经验将我推向正确的方向...

于 2013-02-20T20:48:40.987 回答