안녕하세요.
어떤 데이터의 히스토리를 트레이스할 목적으로 컬럼을 추가하려고 하는데요. 조언 부탁드립니다.
테이블A에는
Id, DateNewGTS, LastUpdate 이 있습니다.
이 테이블의 목적은 해당 Id가 시스템에 처음 들어온 날짜를 DateNewGTS에 담고, 시스템에 다시 들어올때마다 LastUpdate=getdate() 로 업데이트 합니다.
이 테이블로 보면 해당 id가 언제 처음들어왔고 언제 마지막으로 들어왔는지는 알 수 있지만, 특정 일자에는 있었는지 없었는지를 알 수 없습니다.
예를 들어 1이라는 id에 해당하는 아이템이 7월 1일에 처음 시스템에 들어왔으면 DateNewGTS = 2009/07/01이고 그 다음날도 들어왔으면 LastUpdagte = 2009/07/02일이 되는거죠
그리고 7/3일에는 시스템에 안들어왔다가 7/4일에 들어오게 되면 LastUpdate는 7/4일로 업데이트가 됩니다.
이 경우 나중에 봤을때 1이란 아이템이 7/3일날 들어왔었는지 안들어왔었는지 알수 없습니다.
A라는 테이블은 현재 1,762,329 레코드가 있습니다. 이 모든 아이템들을 개별 history테이블을 만드어서 날짜별로 id를 넣는다거나 하는것을 생각해보았구. 다른 한 방법은 그냥 이테이블에 필드를 하나 추가해서 Daily로 mark를 하는것은 어떨까 생각하고 있습니다.
예를 들어 1/3일에 데이터가 들어왔으면 001 이렇게 하구. 1/4일에 안들어왔구 1/5일에 들어왔으면 00101 이렇게요.
이렇게 하면 일년에 varchar(365)개가 필요하기만 해서 3년정도 기록을 보존하는데는 문제가 없을 것 같거든요. 이런 솔루션이 유용할까요? 아니면 이런 스탈의 데이터들은 주로 어떤식으로 기록 관리하나요?
조언 부탁드립니다. |