Table(s) holding every day transaction data can grow huge in size over period of time. This not only slows down applications, it also causes database contention leading to maintainence nightmare.
A simple table design modification can avoid lots of misery in your production environment.
Instead of designing a single table holding all of the transactional data, create two tables: the actual transaction table and an archive table.
Everyday before the business hours, move the data to the archive table from the actual transaction table. This avoids undesired growth and ensures good production performance.
Note: Your archival logic will depend mainly on your business processes and can be daily, weekly, monthly, or based on some other criteria.