Skip to main content

Data Modeling

GraphQL and REST Data Modeling

Setup Table relationships via Builder Studio : Table Relation | Joins. Various Data Modeling relationship types can be established at Table-to-Table and also Multi-Table levels.

  • Table Joins Setup a relationship between two tables (Table-to-Table)

  • Table Relation Setup a relationship between multiple tables (Multi-Table)

Generate code to implement data models and relationships. Complete use case via Low-Code Customization.

info

EasyManage generated code automates 95% of such development. Please verify the generted code and if needed low-code customize.

One-to-one relationship

1x1 relationship between two tables.

One-to-many relationship

1xM relationship between two tables.

Many-to-many relationship

MxM relationship between two tables.

tip

If you have setup 1xM relationship between two tables, then MxM data model is available via some API calls and 1xM with rest.

  • MxM : via API calls ViewAll, ViewAllPaged, SelectWhere
  • 1xM : via API calls FindOne, GetOne
info

Please refer to GraphQL and REST feature details for examples of 1x1, 1xM and MxM relationships.

Table Relation and Joining Tips and FAQs

caution

Follow these to avoid compile errors in generated code.

  • Circular definitions i.e. using one table more than once in Table-To-Table Joins or Multi-Table Relations, is not supported. Generated code will have compile errors.

  • During code generation, Table-To-Table join duplicates based on TableName-to-TableName are skipped out, as GraphQL needs unique schema across project. This can change 1x1 or 1xM of the kept entry (as skipping is random).

  • Table-Relations are based on Table-to-Table join units.

  • All Tables referenced in Table-Relations on all levels must be included in Build Selection. Else generated code will have compile errors.

  • Table-Relations become broken if any of its Table-to-Table join definitions are deleted afterwards. Such entries may be skipped during code generation, or they will not compile. In such cases Delete the entry and define a new one.

  • Tale Join : Column Joins (Match Columns): If table columns to join are configured with "Edit" in Table Join at any given level, then that level nested models are joined with those columns.

  • Only column joins with EM data types CHAR and NUMBER are considered, rest are skipped in code generation.