To jest bardziej pytanie, które wymaga informacji zwrotnej. Projektuję bazę danych, która obsługuje wiele bram płatniczych. Bramka płatności wymaga przede wszystkim tabeli szczegółów zamówienia przed dokonaniem płatności (jest to wspólne dla wszystkich PG) oraz tabeli szczegółów transakcji, do przechowywania odpowiedzi po dokonaniu płatności.
Teraz, aby obsłużyć wiele bram płatniczych, mogę albo utrzymać jedną tabelę transakcji, wypełniając ją wszystkimi polami dostępnymi ze wszystkich bramek płatniczych i polem, które mówi, z którego PG pochodzi ten wiersz;
Mogę też utworzyć osobne tabele transakcji dla każdego PG z prefiksem podobnym paypal_lub bank_itp., Każdy z polami, których każdy potrzebuje.
Po prostu nie jestem pewien, który sposób jest najbardziej optymalny. Muszę też się tego nauczyć w podobnych scenariuszach, które mogą napotkać w przyszłości.
paypal_transaction_id, bank_transaction_iditp Nie mieliśmy zbyt wielu sposobów płatności, więc to działało dla nas. Może nie działać z tymi, którzy wspierają wiele PG.