That was so well stated that I added it to the PrimaryKey wiki page:
http://fox.wikis.com/wc.dll?wiki~PrimaryKey~VFP.
In answer to the question: I would use both 1) a database engine constraint: set up a canidate key in the dbc, and 2) a business rule that can be evaluted as the data is being entered. #1 will ensure that your data is good, reagardless of how well or poor the business rules are enforced. #2 makes it easier to code a friendly UI.