NightWing Enterprises Demo for FileMaker Pro 8 thru 11
|
To mark the release of a major update of the FileMaker Pro Bible!
|
Base36 uID System
Key Conflict Avoidance Strategy
For FileMaker 8 thru 11!
As a courtesy to fellow developers and potential clients, the
following demonstration file is provided for free download.
|
As described in the FileMaker Pro 9 Bible (Chapter 15 - Maintaining Referental Integrity), this demo provides an efficient method of generating unique key values in your FileMaker Pro databases. The resulting keys will be unique, even if generated simultaneously in copies of the database running on different computers. Thus, when importing multiple records into a single table, you need have no concern about primary key conflicts.
This demo presents the simplest form of the NightWing uID System, which has been in use in deployed systems since 2005. We are now making the code public in celebration of the release of the milestone FileMaker 9 edition of the Filemaker Bible. Unique Identifiers (uIDs) generated using this system are compact (typically comprising four five-character alpahanumeric strings*) yet encapsulate the computer's network card (NIC) address**, FileMaker's internally generated RecordID (for up to one billion records) and a timestamp value (the date and time of record creation, accurate to the second).
The uID value is encoded to Base36 for compactness and useability - providing a degree of human readability for troubleshooting and/or manual re-entry of data. While you would normally hope to avoid the need for keys to be viewed or entered, should it be unavoidable, the key values are formed so as to make it relatively painless.
The system provides four custom functions (which must be installed into your solution using FileMaker Pro Advanced). The first function generates the uID values (encoding them to Base36) as needed. The remaining three functions are provided for diagnostic purposes, allowing you to extract the embedded NIC address, recordID or timestamp, respectively, to confirm the origin of a particular key value.
* |
The uID system is designed to produce 23 character id strings (including three spaces) for a majority of current NIC values, but allows for an overflow of up to three additional characters and one additional space for high-range NICs.
|
** |
Where records are generated on a machine lacking an NIC, the resulting uID is extended to 29 characters (including four spaces) to acommodate a high-order random number in place of the NIC (thereby avoiding conflicts).
|
This demo file is unlocked and password-free, compliments of NightWing Enterprises.
|
|
|
NB: If you may require assistance implementing procedures such as those shown in our
example files, please consider establishing an account with us for developer support.
|
|