代表多种付款方式

问题描述 投票:0回答:1

我有一种情况,客户可以通过信用卡或PayPal帐户付款。我目前有一个超级作为“客户”,有两个子类型的'公共'和'商业'。但是,这两种类型都可以通过任何一种付款方式支付,并且可以使用多个信用卡/ PayPal帐户。

我有一个当前的模型,但不是有多个卡等。我最终需要能够查询客户通过什么方法支付。例如,在一段时间内通过信用卡支付了多少客户。

减去付款细节的模型看起来类似于:

[订购] - - - - [客户] ---(d)--- [PUBLIC] [商业]

sql oracle database-design
1个回答
0
投票

在SQL中提取这种查询应该不是问题。如果您为付款帐户添加了表格,并且PAYPAL_ACCOUNT和CREDITCARD_ACCOUNT需要是两个单独的表格,您可以将这些表格与CUSTOMER和ORDER相关联,但不能与PUBLIC或COMMERCIAL相关联。

您可以在SQL中使用LEFT JOIN来显示不包含每个表的行。这将填充表中的字段为null,例如当它是来自PUBLIC帐户的订单并且您查看COMMERCIAL表时

SELECT * from ORDER o
INNER JOIN CUSTOMER c on c.ID = o.CustomerID
LEFT JOIN PUBLIC p on p.CustomerID = c.ID
LEFT JOIN COMMERCIAL co on co.CustomerID = c.ID
LEFT JOIN PAYPAL_ACCOUNT pa on pa.ID = o.PaypalAccountID
LEFT JOIN CREDITCARD_ACCOUNT cc on cc.ID = o.CreditCardAccountID

然后你可以在最后添加where子句来缩小范围

WHERE o.PaypalAccountID is not null

只拉起Paypal

© www.soinside.com 2019 - 2024. All rights reserved.