비정규 화 또는 테이블 계층 관계와 관련된 모범 사례에 대한 질문이 있습니다.SQL/MySQL 구조 (비정규 화 또는 관계형 유지)
예를 들어 사용자가 주문에 대해 결제 할 수있는 앱이 있다고 가정 해 보겠습니다. orders 테이블에 주문 정보를 저장하고 지불이라는 지불 테이블을 가지고 있습니다. Payments에는 orders 테이블에 대한 외부 키가 있습니다.
내가 신용 카드, 수표 또는 페이팔로 지불 할 수 있다고 가정하고 지불에 대한 정보를 저장하려고합니다.
제 질문은 다른 지불 데이터와 지불 테이블 간의이 관계를 처리하는 가장 좋은 방법입니다. 지불 유형에는 모두 서로 다른 데이터가 있습니다. 그래서 나는 지불 테이블을 비정규 화하고 신용 카드, 수표 및 페이팔 정보 필드를 거기에 넣은 다음 필요에 따라 필드를 사용합니다. 또는 지불 유형을 지정하고 자신의 테이블에 정보를 저장할 수 있지만 올바른 신용 카드, 수표 또는 페이팔 정보 테이블에서 데이터를 가져 오려면 응용 프로그램 수준에서 논리를 사용해야합니다.
각 지불 유형에 대해 저장해야하는 정보는 어떻게 다릅니 까? 지불을 위해 나는 일반적으로 지불 유형 (수표, CC, 페이팔 등)과 수표 번호, 신용 카드 승인 번호, 페이팔 거래 번호 등 단일 DocumentID 열을 저장합니다. –
지불은 단지 쉬운 예입니다. 이 유형의 실제 사용량은 유형 당 약 20 개의 고유 한 열이있는 훨씬 더 복잡합니다. – Jestep