Never physically DELETE data in enterprise apps. Use a bit column IsDeleted. But how do you handle unique constraints?
Pro Tip: Use a Filtered Unique Index. This allows you to have the same email address in a ‘Users’ table if the previous ones are marked as deleted.
CREATE UNIQUE INDEX UI_ActiveEmail ON Users(Email) WHERE IsDeleted = 0;
