Best practices for creating a data model
Introduction to data modeling
When creating a data model for an application in Eximee, you should follow principles that will make the system easier to maintain and ensure data consistency across the entire organization. A well-designed model is the foundation of efficient information flow between the user interface and the process engine.
Key naming standards
An effective data model should be intuitive. When designing keys, follow the technical standards below:
Format
Use camelCase, a single language (English), no PL characters or spaces.
startDateOfEmployment
Start_Date
Boolean logic
Start with is or has.
isPoliticallyExposed
is_pep
The "of" pattern
Use the "of" construction for clarity of context.
countryOfResidence
residenceCountry
Identifiers
Avoid generic id. Add business context.
customerId
id
Principles for designing structure and development
The following rules define the approach to the model architecture and its evolution over time:
Hierarchy and structure
The tree structure must reflect the natural hierarchy of business data. Group fields into semantic objects (e.g. customerData.name or registerAddress). This makes it easier to map entire structures to services and increases model readability.
Data vs. Calculations
Store source data (e.g. dates), not variable or derivable values (e.g. age). If a calculation is necessary, add it as a separate field dynamically fed by a provider.
Avoid duplication
Before adding a field, check whether similar information already exists. Different objects (e.g. addresses) should share the same internal key names (e.g. streetName), to maintain technological consistency.
YAGNI strategy
Do not model structure "for later". Add only the fields that are actually required at the current stage of the process. An excessive model makes analytics harder.
Reusability
When designing a new structure, treat existing models in other applications as a reference point. Keep consistent naming for the same concepts across the entire organization.
Requirement updates
With every modification of the BPMN process (e.g. adding or removing a step) or form (e.g. adding a new data section), perform an impact analysis on the data model. Lack of synchronization is the most common cause of errors.
Documentation and technical parameters
The data model in Eximee is not only a structure, but also metadata that facilitates integration and maintenance:
Attribute docs
Document the business meaning and context of keys and providers. In the application documentation, use full dot notation (e.g. customerData.address.street).
Value defaultValue
Allows assigning a default value (e.g. the flag false), when the sources do not provide data. This prevents errors of type null pointer.
Multiplicity
Parameters must precisely reflect the business logic. For required fields Min=1. For lists of unlimited length, use Max=null.
Source logic
Document the order and mappings of providers. Remember - the first source that returns a value other than nullnull, takes priority.
Common mistakes and how to avoid them
Below is an overview of the most common mistakes made when creating and using a data model - their causes, effects, and how to avoid them.
Missing form binding
The "Data model key" was not set in the component.
Data is not being saved (the field is empty after refresh).
Set the key in the component properties by entering the exact field key from the data model. After saving the form, the component will save its value to that field, and when launched it will retrieve the existing value from the model.
Typos and name mismatches
Typing names manually in the "Data model key" option.
The component will not connect to the correct field in the data model - the value will not be saved to the model.
"Use the copy icon next to the key in the data model.
Incorrect use of arrays
Omitting index notation (e.g. products.price).
Syntax without [] or an index is invalid and will cause an error preventing the form from launching.
In repeatable sections, use the notation products[].price.
Invisible data model
No artifact in the application.
The model has not been initialized.
Use the "Initialize data model" button in the application's "Data model" tab.
Last updated
Was this helpful?
