Essa é mais uma pergunta que requer feedback. Estou projetando um banco de dados que lida com vários gateways de pagamento. Um gateway de pagamento geralmente requer uma tabela para obter detalhes do pedido antes de efetuar o pagamento (isso é comum para todos os PGs) e uma tabela para detalhes da transação, para armazenar a resposta após o pagamento.
Agora, para lidar com vários gateways de pagamento, posso manter uma única tabela de transações, preenchendo-a com todos os campos disponíveis em todos os gateways de pagamento e um campo que diz de qual PG é essa linha;
Ou, posso criar tabelas de transação separadas para cada um dos PG com prefixo como paypal_
ou bank_
etc, cada um com os campos de que precisam.
Só não tenho certeza de qual é a melhor maneira de fazê-lo. Também é necessário aprendê-lo para cenários semelhantes que eu possa encontrar no futuro.
paypal_transaction_id
, bank_transaction_id
etc. Nós não têm muitas gateways de pagamento, por isso funcionou para nós. Pode não funcionar com aqueles que apoiam muitos PGs.