How do guys generally handle deleting records in your business software?
As you know, the company I work for is developing a software product and with that means they'll need to remove stuff they did on accident. Now to make things a little bit more complicated, our software often times will be used as simply the data collection mechanism and then transfer the actual data to some other backend system. The tricky part is what to do with the records that we keep in our system since I don't really know what the other company is going to do.
I've been mostly in favor of a "soft delete" system so the users don't see the old stuff, but since we have a lot of relational keys, it's not easy for me to simply delete a record. Often times, the other company has no way to take the deleted records which could lead to bad data if they ever wanted to run reports out of our system (since it's easier) but maintain their own system as well. Basically I'm running into a master-master sort of scenario.
Right now, we don't allow you to delete records if they have been used somewhere else, so if you create a category or something by accident you can delete it as long as you haven't used it yet. Once you've used it, it says around.