We recently released Validations on the Thinkwise guidelines. You can find more about this here:
Although data modeling seems quite simple at first glance, it is quite a challenge to create a good structure. Without a good structure, a data model is more difficult to understand, more programming is required and errors are more likely to occur.
To help you set up a good data model, we have drawn up guidelines, which you can find here:
https://docs.thinkwisesoftware.com/docs/sf/guidelines_data_modeling
In the guidelines we distinguish between the following categories of entities:
- Strong entities
- Weak entities
- Link tables
- Inheritance tables
Depending on how the primary and foreign keys are structured, each table and view must be classified in one of these four categories. If that doesn't work, then something is almost certainly not modeled correctly. The result of this may be that selection from such a table does not go well, that it is unclear whether the table belongs in a menu and that it is unclear which type of screens must be defined for such a table.
Manually identifying tables that do not belong to one of the four entity categories is very difficult, especially if your data model is large. That is why we have automated this process through a dynamic model procedure and a validation.
The tsf_guidelines_categorize_entities dynamic procedure attempts to provide each table and view with one of the following tags:
- tsf_datamodel_guidelines_strong_entity
- tsf_datamodel_guidelines_weak_entity
- tsf_datamodel_guidelines_link_entity
- tsf_datamodel_guidelines_inheritance_entity
If there are any tables or views after this that do not have one of these tags, they will be tagged:
- tsf_datamodel_guidelines_entity_not_qualified
With this, all tables and views have one of the above tags. These tags are then used by various guideline validations. The first validation is Entity could not be qualified as strong entity, weak entity, link table or inheritance table. It simply searches for tables and views with the tsf_datamodel_guidelines_entity_not_qualified tag. If so, the validation will return a message for each of these tables or views. These tables and views require immediate attention.
So, adding the guidelines validations to your model, will improve the quality of your data model.