문제

당신은 어떻게 a를 대표하겠습니까? 일시적인 SQL의 다수의 관계? 비 임차 상황에서는 a 정션 테이블 (일명 링크/브리지/맵) 양면을 연결합니다.

정션 테이블에 ValidStart 및 Validend 열을 포함하는 것만 큼 시간 추적을 간단하게 추가합니까? 이 작업을 수행 한 경우 어떤 문제 (있는 경우)에 도달 했습니까? 이런 종류의 관계에서 시간이 지남에 따라 변화를 추적하는 더 좋은 방법이 있습니까?

그것이 전혀 도움이된다면, 나의 경우에 나는 특별히 SQL 2008을 사용하고 있으며 시간 데이터는 bitemporal 유효한 시간 만 추적하기 때문에.

도움이 되었습니까?

해결책

나는 시간적 데이터와 시간적 다수의 관계를 모두 사용하는 프로젝트 (현재 몇 년 동안)를 연구하고 있습니다. 각 테이블에는 유효한 열이 있습니다.

먼저 유효한* 열의 의미를 정의해야합니다. 또한 널 날짜가 유효한지 여부와 그 의미가 무엇인지 지정해야합니다.

다음으로 dbo.overlaps2 () 및 dbo.overlaps3 ()와 같은 몇 가지 기능이 각각 2 및 3 날짜 범위를 수신하고 날짜 범위가 겹치는 경우 1을 반환하고 그렇지 않으면 0을 반환해야합니다.

게다가, 나는 dbo.overlap3 (...) = 1과의 다수의 관계에 대한 견해를 정의했다.

한 가지 추가 요점은 2 또는 3 관련 테이블의 날짜를 기준으로 유효 유효 범위를 계산하는 일련의 함수를 갖는 것입니다.

최근에 사용자가 사용 가능한 모든 데이터 또는 현재 유효한 데이터 만 표시 할 수 있도록 기능을 추가해야했습니다. 이 설정을 사용자 테이블에 저장하고 연결을 열 때 SPID를 사용자와 연결하고 다른 뷰 세트에서 레코드를 필터링합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top