The only reason I'd go with approach #2 would be if there could be multiple 
rows per ID.
Otherwise I'd have no heartburn with adding a few more columns to the main 
table.

Karen


In a message dated 7/12/2012 1:50:53 PM Central Daylight Time, 
[email protected] writes: 
> I need to track active vs. obsoleted status for a range of primary-key 
> data objects, while keeping them all available for historical purposes. 
> Fortunately, these don't change very often, if at all. I've thought of two 
> approaches:
> 
> 
> 1. Append four columns to each table:
> 
> xactive ('x' prefix indicating binary flag [1|0]
> begdate
> enddate
> flagdate
> 
> 
> 
> or:
> 
> 
> 2. Maintain a record status table:
> 
> 
> 
> RECORDSTATUS
> -------------------
> RecordStatusID <pk>
> TableName - one of the tracked tables
> 
> RecordID <fk> - Primary-key value to be flagged
> 
> ReplacedRecordID <fk> - Value inactivated by RecordID
> 
> xActive 
> BegDate
> EndDate
> FlagDate
> 
> 
> Record status would update infrequently, but would be read during each 
> view creation involving a tracked object (...where recordstatus.xactive = 1). 
> 
> 
> Approach #2 appeals. But am I trading code-simplicity for performance? Or 
> does the idea of a 'RecordStatus' table have legs? 
> 
> 
> 

Reply via email to