Hi Sandro. I think there is no silver bullet here (as in many other fields, too). You could end with a mix of different approaches (simple checks done on the database, while complex one are left in the application logic). Also, most probably you will end moving that logic in the lifetime of the application. If you have time (and money) take a look at Chapter 20 from "Agile Database Techniques" from Scott Ambler: it examines a number of possibilities which could be worthy to you. Regards Marco -- Marco Bizzarri http://iliveinpisa.blogspot.com/