>Hi everybody,
>
>I'm thinking, should I use the built-in RI Builder for a simple application or should I try to enforce RI rules from the interface?
>
>I have the following tables in a database:
>
>Tickets, Problems, Resolutions, ProblemResolution, Software, Hardware, Other.
>
>Tickets may have pointers to all of these tables. I allow to Delete Problems and Resolutions in the interface, I also allow to make inactive Software/Hardware/Other.
>
>What would be the best course of action for me to proceed in enforcing some integrity rules?
>
>What do you suggest?
>
>Thanks a lot in advance.
I would use RI even for the simplest of applications - it is easy to use, and it does give you some advantages (data integrity, simplification in some cases through cascading delete).
Especially for more demanding applications, I would ADDITIONALLY put validation rules to do some checks before RI kicks in; this is to avoid the user getting unintelligible (for him) messages like "trigger failed".
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)