4D's UUIDs function as globally unique row *serial numbers*. That's great
for backups and convenient for physical relations, but it has exactly zero
to do with a real "primary key" or relational integrity. I would have
preferred to see UUIDs implemented as a virtual field:

[Customer].UUID()

or

Get record UUID ([Customer])

...and let 4D manage them internally, automatically, and invisibly. But
that's not how it worked out.

Yeah, UUIDs are impossible to type and I'm still not 100% clear on how you
search for empty ones. I've seen the tech tips etc., and still get some
really eerie weird results at times.

In my own code, I tend to run verification methods that check for real
(logical) keys. Namely, the field or combination of fields that uniquely
identifies the *data* in the row. A UUID-as-physical-key very easily masks
duplicate rows because it is, by definition, unique. You row might be
unique, but your data might not be, if you know what I'm saying.

Anyway, I tend to scan for duplicate data, orphan records (a child record
that *requires* a parent and doesn't have one is an orphan. Not all child
records require parents, but 4D's diagrams, etc. don't distinguish between
the two.) Oh, an widows. Mostly, I find lurking duplicates and orphans.
Widows? Not so often. Not sure if that's just me. In theory, none of these
things should ever happen. But then again, a whole lot of things work out
better in theory...
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**********************************************************************

Reply via email to