This page is part of the internal FileMaker Pro programming standards of Lutz Pietschker. No claims of any sort can be derived from the description of these standards. In particular, no claim can be made that these standards are complete and without errors, and that any of my software projects follow to these standards in part or completely.
The page content was last revised on (ca. 2008)
Go to start page
This document describes the files that make up a standard database, and their content and use; implicitly, this defines the structure of the database. Related Topics:
All databases adhere (more or less strictly) to the "Separation Model" described in the Filemaker White Papers. The basic principle is to separate the data from the ressources/business logic and the user interface (GUI).
Each database shall consist of these files; the files marked in bold print are usually present in any database:
|Filename||Symbolic Name||Function||TO Colour|
|start.fp7||(none)||Always the first file opened in the database (and therefore the only one with a file type extension). Initializes the application, shows splash screen, closes after startup is complete.||(n/a)|
Holds all layouts for interactive use; may be combined into
|applic||$app||Holds the main business logic (relations, scripts, calculations)||red|
|applic_<...>||$app_<...>||Holds the business logic for special functions, in particular re-usable modules||red|
|data||$dat||Holds the main data tables||green|
|data_user||$dat_usr||Holds data tables user-specific data or data that requires user-specific access; has a special security/access schema. Note that this is not user-specific in the sense that one file exists per user; rather, data from all users is present, but special access privileges restrict access to data of other users.||green|
|data_<...>||$dat_<...>||Holds data tables with special characteristics (static/reference data, data re-usable for other databases, no-backup data)||green|
|system||$sys||Holds data that is read-only for all users and that is defined by the developer (common globals etc.)||blue|
|lang||$lng||Holds language resources that are actually used (layout and message texts plus language-dependent graphics); may be omitted if no language switching is required.||violet|
|lang_<code>||$lng_<code>||Holds language resources in a particular language; <code> = ISO 639 2-letter-name. These files hold additional languages to add to the solution.||violet|
|transfer||$trans||Holds generic table to enable data import/export for all purposes, in particular for update operations||turquoise|
Holds all layouts and functions for reporting (i.e. presentation in external data format or print) purposes; may be combined into
Data stored in report files is always considered temporary data.
|history||$hist||Holds the history of the database usage||pink|
|rollback||$roll||Holds records that enable a rollback of database actions||light blue|
"Static" tables (tables with reference or slow-changing content only) may get a darker hue of colour than tables with fast-changing data. See the naming conventions for other notes about TO Colouring.
For rules about table references (aka relationships or relations) see the chapter about indexes and relations.
All file references are named using the symbolic name from the table above (for example:
$app). Usually, the reference to each file shall be given in this form:
fp7, but a project-specific extension that may be used for special purposes; the second line is optional and used only where needed.
This rule makes sure that the file is found with our without a project-specific extension (note that the second reference line implicitly includes a reference to
<filename>.fp7), and that the file is found whether available locally or on a FileMaker server.
If necessary for performance reasons, the
reference to the server may be replaced by
This page is copyrighted by the author according to the
All rights reserved. Lutz Pietschker, Berlin/Germany, 2011 ff.
, last change 2011-03-12