What is the correct way to specify a record as the *current* record?
I've seen several approaches to this:


a boolean (if the DBMS of choice supports that) or character (e.g. 'Y','N') indicator column;
a more general "status" column, containing values like 'ACTIVE','HISTORY','EXPIRED' etc.
a pair of timestamp columns (e.g. START_DT, END_DT), indicating the range of dates when a particular record is (was) active. The current record would have the END_DT value in the future, like '9999-12-31', which makes querying the current record simple: ...where current_date between START_DT and END_DT
a history table where all non-current records would be moved as soon as they become non-current. If you're only interested in current records, you would query the current table, otherwise you'd query a view that UNION ALLs both current and history tables.


In the first three cases you would need to ensure consistency via some sort of a constraint, if your application is unable to do that. 

Which approach you choose depends on what constitutes the current record in your particular case.