I think you approach is correct. Historical table should be a copy of the main table without indexes, make sure you have update timestamp in the table as well.
If you try the other approach soon enough you will face problems:
- maintenance overhead
- more flags in selects
- queries slowdown
- growth of tables, indexes