これは、フィードバックが必要な質問の詳細です。複数の支払いゲートウェイを処理するデータベースを設計しています。支払いゲートウェイは、ほとんどの場合、支払いを行う前に注文詳細のテーブル(これはすべてのPGに共通)と、支払いを行った後の応答を保存するためのトランザクション詳細のテーブルを必要とします。
ここで、複数の支払いゲートウェイを処理するために、単一のトランザクションテーブルを保持し、すべての支払いゲートウェイから利用可能なすべてのフィールドと、その行のPGを示すフィールドを詰め込むことができます。
それとも、私のような接頭辞でPGごとに別のトランザクションテーブルを作成することができpaypal_
たりbank_
、それぞれがそれらのそれぞれが必要なフィールドを持つ、など。
どちらがより最適な方法であるかはわかりません。また、将来遭遇する可能性のある同様のシナリオについても学習する必要があります。
paypal_transaction_id
では、bank_transaction_id
などのプロパティを持つ単一のテーブルを使用しました。支払いゲートウェイが多すぎなかったため、うまくいきました。多くのPGをサポートするユーザーとは連携しない場合があります。