2011-05-12 3 views
1

데이터베이스 지불 거래를 처리하는 가장 좋은 방법은 무엇입니까?결제 거래 및 주문 테이블?

주문 표

  • 에 OrderID (기본 키) **
  • MEMBERID (FK)
  • OrderTotal
  • 상태 (출원 : 여기

    내가 생각 해낸 것입니다 , 처리 완료 됨)
  • 유료 (0, 1)

지불 표

  • PaymentID
  • 에 OrderID (주문 테이블 관련) (기본 키)
  • 날짜
  • 트랜잭션 상태 예를 들어

, 경우 에서 두 가지 결제 거래가 있습니다. Payments 테이블에서 OrderID-123.

하나는 쇠퇴이고, 다른 하나는 Sucesss입니다

Sucesss의 행이 다음 Orders.Paid 1

될 것이다 또는 더 나은 해결책은 무엇인가가 있다면?

+0

Denis의 경우 PaymentID를 해당 주문 번호 –

답변

4

내 경험으로는 쇠퇴와 성공으로는 충분하지 않습니다. 다채로운 유스 케이스 중 자금 환급 (예 : 전자 수표), 환불 (귀하가 작성), 취소 (고객/API 제공 업체가 작성), 부분 환불/환불 (예 : 개 장난감 동일한 주문 내에서 음식이 아님), 환불/반전을 취소 할 수 있습니다.

구독과 관련된 다양한 다양한 사례는 말할 필요도 없습니다. 가입 업그레이드 및 다운 그레이드, 가입 변경, 취소, 취소 취소, 잠김 및 금지. 말할 필요도없이

는, 문제는,

정확한 대답은 사용자의 특정 요구 사항에 따라 등, 당신이 이제까지 제휴 지불, 사용자가없는 송장, 다른 결제/배송 연락처, 리셀러를 처리해야하는 경우도 쟁점이 될 분명히 T- 원장 회계의 엄격함을 만족시키는 모델 (예 : 차변/계좌 와장 차트)을 만족하는 모델부터 시작하여 특정 제품 .

+0

+1과 연관시키는 것을 잊지 마십시오. 특히 T 원장 개념과 관련하여 특히 그렇습니다. 빚진 금액에 대한 지불 및 상태 변경과 관련된 기록은 모두 한 번만 쓰여지고 결코 업데이트되지 않아야합니다. 이렇게하면 모든 전환에 대한 감사 추적이 제공됩니다. 고려해야 할 또 다른 주름은 지불 신청입니다. 즉, 하나의 지불은 여러 주문을 처리합니다.송장과 대조적으로 진술에 대한 지불이있는 경우 이는 분명 중요합니다. –