0

사람들이 특정 작업에 대해 보증을 요청할 수 있도록하는 응용 프로그램을 개발 중입니다. 그들은 어떤 제품을 사용했는지 등의 정보를 제공합니다. (선택 항목 중 일부는 이미 시스템에있는 항목 목록에서 제공됩니다.)순간 모델 관계 저장

나는 고민 중입니다. 승인 된 보증을 시간 경과에 따라 변경 될 수있는 관련 레코드에 의존하는 해당 시점의 스냅 샷으로 만드는 개념.

내가 생각할 수있는 가장 쉬운 방법은 원본 테이블에 관계를 저장하는 것이 아니라 예를 들어 product_id)를 사용하여 제품을 문자열로 작성하는 것은 다소 지저분한 것처럼 보일 수 있습니다. 다른 방법으로는 보증이 첨부되지 않는 한 제품 테이블의 제품 삭제/수정을 허용하지 않는 것입니다. 아마도 t를 가리키는 'replaced_with'컬럼을 구현할 것입니다. 동일한 제품의 편집 된 버전? 전에 장바구니에서이 작업을했는데 꽤 잘 돌아갔습니다. 나는 많은 관계를 관리해야하고 생각하지 못한 방법이 있는지 궁금해하고 있습니까?

답변

0

무엇에 대해 : 보증 0 : 1 인 "제품 단종"테이블에 추가

  1. . 열은 보증 ID입니다.
  2. 있는 "역사적인 제품 표"에 추가 : 제품 테이블

    이 채워 된 날짜/시간 추가 타임 스탬프 필드로

    같은 열.

    제품 ID의 기본 키/타임 스탬프

    제품 ID

  3. 삭제/수정 트리거/절차에 대한 인덱스 :

    이 제품에 대한 모든 보증을 선택합니다.

    보증이있는 경우 제품 세부 정보를 "과거 제품 표"에 복사하고 기본 키의 두 번째 부분을 추가하십시오.

    보증 기간마다 "생산 중단 된 제품"테이블에 레코드를 삽입하십시오.

이는 사용 중지 된 품목에 대한 보증을 활성 제품과 다르게 처리하기를 원할 것임을 전제로합니다.

+0

그건 나쁜 생각이 아닙니다. 대체 방법은 소프트 삭제/대체를 허용하는 플러그인을 사용하는 것입니다. 나에게 발생하지 않았을 수도있는 대안 전략이 있는지 궁금해하고있었습니다. :) –