处理多个支付网关的模式设计

Bib*_*has 9 database-design

这更像是一个需要反馈的问题。我正在设计一个处理多个支付网关的数据库。支付网关在支付前通常需要一张订单明细表(这对所有 PG 都是通用的),以及一个交易明细表,用于存储支付后的响应。

现在为了处理多个支付网关,我可以保留一个交易表,用所有支付网关提供的所有字段和一个说明该行来自哪个 PG 的字段填充它;
或者,我可以为每个带有前缀 likepaypal_bank_etc的 PG 创建单独的事务表,每个表都有每个人需要的字段。

我只是不确定哪种方法更合适。还需要为我将来可能遇到的类似场景学习它。

Aar*_*ron 7

这取决于付款类型之间的数据有何不同。

对于我在工作中支持的站点,我们有一个表来存储所有付款类型的数据。这对我们有用,因为我们的付款类型基本上是 4 种信用卡和公司采购订单。我们的大多数客户都使用信用卡付款,因此数据不会有很大偏差。当然,对这些信用卡客户的查询总是在 PONumber 字段中产生 NULL 值。同样,对 PO 客户的查询在所有信用卡相关字段中都会产生 NULL。

如果您的数据中有很多不同的字段,您可以尝试一个主交易表,每个支付网关都有单独的表。每个支付网关类型表都有一个外键 transaction_id,它将链接回主交易表。

另一方面,如果您的支付网关类型都有相似的字段,那么我会坚持使用一个交易表。