As Chris points out, in most applications these days you end up having to go with optimistic locking, which presents a few challenges. Chris works through the list of options. If you're building web/disconnected apps and need anything besides last update wins, this one is for you.
Sysdepends is a neat idea, but in practice it's not always accurate. This article talks about why it's not always reliable and presents some code (recursive even!) that will let you find all the dependencies by querying the system tables.