비활성 이미지에 대해 별도의 항목 (별도의 표)을 마련하는 것이 좋습니다. 이렇게하면 tblUserImages에 "활성"속성이 필요하지 않으므로이 테이블의 모든 이미지가 활성화됩니다. 이미지 기록을 조회하려면 비활성 이미지 표만 참조하십시오. 활성 이미지 테이블은 UserId에 대한 고유 제한 조건을 갖거나 단순히 UserId를 기본 키로 사용할 수 있습니다.
아마도 이것은 밀교적인 해결책처럼 들리지만,이 동일한 데이터 모델링 문제가 다른 시스템에서 나타난 것을 경험 한 경험을 기반으로합니다. 핵심 쟁점은 시스템의 활성 상태가 시스템의 과거 상태와 같지 않다는 것입니다. 활성 상태의 일부를 나타내는 엔티티는 두 엔티티의 정보가 겹쳐도 기록 상태를 기록하는 엔티티와 동일하지 않습니다. 이 아이디어를 사용하여 데이터 모델을 발전 시키면 실제로 역사적인 개체의 특성이 활성 "운영"대상과 다를 수 있음을 알 수 있습니다. 즉, 활성 이미지 테이블의 필드 레이아웃이 과거 이미지 테이블의 이상적인 필드 레이아웃과 정확히 같지 않을 수 있습니다.
이 방법으로 데이터를 구조화 할 때 볼 수있는 유일한 단점은 활성 이미지를 교체 된 지점에서 기록 테이블로 복사해야한다는 것입니다. 몇 가지 중요한 측면에서이 솔루션이 우수합니다. 특히 사용자 ID에 대해 클러스터 된 키를 사용하는 경우 쿼리 속도가 빨라집니다. 가장 중요한 것은 다른 코더가 솔루션을 더 쉽게 이해할 수 있다는 것입니다. 필터 인덱스를 만드는 것은 완벽한 솔루션이며 SQL Server 기능을 잘 사용하지만 향후 유지 관리 프로그래머에게는 분명하지 않을 수 있습니다.
굉장! 매력처럼 작동합니다. 정말 고마워! –
나는 이것이 처음에 제안한 방아쇠보다이 점이 더 마음에 듭니다. –