I was wondering if there are any best practices for maintaining historic data in a relational database? For example if you were creating a purchase order system and had customer and order tables, if the customer's address changes, you obviously wouldn't want this change to affect previous order details, only future ones. I was thinking you could have a separate customer address table and include it in the order table, but this would get complicated fast as there are many fields you would want to preserve. Any tips on this would be appreciated.