您将如何设计数据库以实现此功能?
考虑我们想要创建 产品关系(包) ...
的场景假设我们创建了 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
我们希望提供一个产品包,为客户提供更好的费用。
E.g。如果客户选择预付费-A +互联网+ mms ,他们将获得25美元(而非29美元)的pkg费用。
DESIGN
E.g。 pkg组合
ProdPkgTbl
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 - >预付-a,mms和互联网的pkg费用为25美元
- pkgid 2 - >互联网和电子邮件一起收取10美元
- pkgid 3 - >预付费c,互联网,mms,电子邮件一起为45 usd
因此,如果客户 预付c +互联网 ,只有他们没有得到45美元的交易,他们将支付39 + 9 = 48美元的正常费用。
现在这个表只是用于演示,我想得到你的意见和建议,以正确的方向进行建模。
我们首先需要选择 - 查询客户当前的费用计划(基于已使用的产品/服务),然后查看产品pkg并查看pkg交易是否对他们有效。
(如何在pkg表上进行此类选择?) 如何为此建立一个好的数据库模型?
请提供建议,提供网址,提示,任何有价值的信息,以便将我推向正确的方向。
非常感谢。
答案 0 :(得分:2)
您正在从目录中销售商品或服务。您还可以出售上述组合。这称为营销包(或捆绑或组合)。
营销包也从目录中出售。它可以包括商品,服务或其他营销包。
每个订单的价格确实不同。您可以在好表中设置基本价格,在服务表中设置每月价格,在营销包表中设置基本价格。
答案 1 :(得分:0)
我希望对此有一些意见,但也许问题是"凌乱"回答。 :O)
我现在的模特是这样的:
<强> 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
<强> ProductPkgTbl 强>
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%完美无瑕的设计。
请根据您在这方面的经验,向我推进正确的方向......