database design storing historical information I have this database table Templates and I need to keep historical information. So in code what I am doing is inserting a new row with the updated data and then setting the  IsCurrentVersion flag to false. This is working fine but I am not sure how this will grow. Will that have performance problems? Is there a better way to do this? would a archive table be better?
Table Templates {
  id int [pk]
  Title varchar
  Added datetime
  Moddified datatime
  Deleted datetime
  IsCurrentVersion bit
}
Instead of a bit for IsCurrentVersion, I'd suggest setting up a version table and then use queries that let you pick the max version. I have several examples of the necessary code in this article. This method performs extremely well and has scaled well over time. However, there are alternatives that also work well. Between these two methods, you should be able to do exactly what you're looking for.