How do you maintain referential integrity when archiving or deleting millions of records from highly normalized relational tables?