A-B affords numerous advantages. One of the most important, is performance. FMs relationship graph is more than a modeling tool; each relationship is, in effect, a query. The more relationships that exist in a TOG (Table Occurrence Group), the more time it takes to evaluate. Add to this unstored calc fields that span relationships, and the performance impact grows. Keeping TOGs to the minimum needed for the UI in play, is imperative.
One of the visual aids in any A-B endeavor, is TO naming conventions. There are no set standard, and it is all person preference.
Here is my take:
- Start each TOG TO, with a unique acronym; I use t10 for one group, and t11 for another, and so on. Makes selecting the right TO from the right TOG much easier during development.
- I append each T+2 digit number with an a, b, c, d for parent, child, grand-child, great grandchild table. Sorts them in the right order to reference
- After the group ID T10a, an underscore plus the table name, ALL CAPS
- For the child, the parent goes lower case, and the child name is ALL CAPS
- Between each relationship is a ~ID~ (or whatever the relationship is built on)
- The base table of every TO is in the name in ALL CAPS; all other table names in the relationship are lower case
- All names in the TOs are identical to the base table that is being referenced.
I've refined this over the last decade, and my current approach is what seems to work - at least for me. Each TO name has significance in the name itself.
And if a relationship sort exists, the TO name gets an _s suffix
No ambiguity or cross-reference interpretations required; the names are unambiguous but not so explicit that it is provides onerous detail. If connected on ID or a global match field, or contains a sort, that is just the clue to go check out if that TO is the one matching your needs.
One other footnote: IF you are developing FM on a Mac (is there any other way?) the $10 investment in Monodraw is money well spent. You can draw out the TOG as ASCII really quickly, and place it in a comment in the code that uses that TOG. GREAT visual aid