你将如何设计你的数据库来实现这个功能?
考虑一个我们想要创建产品关系(包)的场景......
假设我们创建了一个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 表上?)如何为此有一个好的数据库模型?
请提供网址、提示和任何有价值的建议,以将我推向正确的方向。
十分感谢。